Skip to main content

A library for processing addresses of Japan

Project description

japanese-address-parser-py

A Python toolkit for processing Japanese addresses

PyPI - Version PyPI - Downloads Unit test & Integration test

What is it?

japanese-address-parser-py is a Python package for parsing Japanese addresses. Any address can be parsed into structured data.

Installation from PyPI

pip install japanese-address-parser-py

Usage

Sequential execution

from japanese_address_parser_py import Parser

addresses = [
    "埼玉県さいたま市浦和区高砂3-15-1",
    "千葉県千葉市中央区市場町1-1",
    "東京都新宿区西新宿2-8-1",
    "神奈川県横浜市中区日本大通1",
]
parser = Parser()
for address in addresses:
    parse_result = parser.parse(address)
    print(parse_result.address)
{'prefecture': '埼玉県', 'town': '高砂三丁目', 'rest': '15-1', 'city': 'さいたま市浦和区'}
{'rest': '1-1', 'town': '市場町', 'prefecture': '千葉県', 'city': '千葉市中央区'}
{'prefecture': '東京都', 'rest': '8-1', 'town': '西新宿二丁目', 'city': '新宿区'}
{'town': '日本大通', 'city': '横浜市中区', 'prefecture': '神奈川県', 'rest': '1'}

Parallel execution

from concurrent.futures import ThreadPoolExecutor

from japanese_address_parser_py import Parser

addresses = [
    "徳島県徳島市万代町1-1",
    "香川県高松市番町4-1-10",
    "愛媛県松山市一番町4-4-2",
    "高知県高知市丸ノ内1-2-20",
]

parser = Parser()
with ThreadPoolExecutor(max_workers=4) as executor:
    results = executor.map(parser.parse, addresses)

for result in results:
    print(result.address)
{'prefecture': '徳島県', 'rest': '1', 'city': '徳島市', 'town': '万代町一丁目'}
{'prefecture': '香川県', 'city': '高松市', 'town': '番町四丁目', 'rest': '1-10'}
{'city': '松山市', 'rest': '4-2', 'town': '一番町四丁目', 'prefecture': '愛媛県'}
{'city': '高知市', 'town': '丸ノ内一丁目', 'rest': '2-20', 'prefecture': '高知県'}

Async usage

import asyncio
from japanese_address_parser_py import parse_async

ADDRESSES = [
    "神奈川県相模原市緑区西橋本五丁目3番21",
    "神奈川県相模原市中央区中央二丁目11番15号",
    "神奈川県相模原市南区相模大野五丁目31番1号",
]


async def main():
    tasks = [parse_async(addr) for addr in ADDRESSES]
    results = await asyncio.gather(*tasks)

    for result in results:
        print(result.address)
        print(result.error)


asyncio.run(main())

Development

This library is written in Rust. You need to set up a Rust development environment to build this library. We recommend uv for Python dependency management and development.

# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone repository
git clone https://github.com/YuukiToriyama/japanese-address-parser.git
cd japanese-address-parser/python
# Setup environment and install dependencies
uv sync
# Run tests
uv run pytest tests/test_parser.py

If you want to build the wheel manually:

uv tool run maturin build --release --out dist

Support

This software is maintained by YuukiToriyama. If you have any questions, please create a new issue.

Where to get source code

The source code is hosted on GitHub at: https://github.com/YuukiToriyama/japanese-address-parser

Acknowledgements

This software was inspired by @geolonia/normalize-japanese-addresses.
In addition, the parsing process uses Geolonia 住所データ which is provided by 株式会社Geolonia.

License

This library is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

japanese_address_parser_py-0.3.3.tar.gz (57.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

japanese_address_parser_py-0.3.3-cp37-abi3-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.7+Windows x86-64

japanese_address_parser_py-0.3.3-cp37-abi3-win32.whl (2.0 MB view details)

Uploaded CPython 3.7+Windows x86

japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ x86-64

japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ s390x

japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.9 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ ppc64le

japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ i686

japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.1 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ ARMv7l

japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ ARM64

japanese_address_parser_py-0.3.3-cp37-abi3-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

japanese_address_parser_py-0.3.3-cp37-abi3-macosx_10_12_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.7+macOS 10.12+ x86-64

File details

Details for the file japanese_address_parser_py-0.3.3.tar.gz.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3.tar.gz
Algorithm Hash digest
SHA256 ac042bab93cfab4dc0807e388bd2039e51960d3e6fe819516003d2343c72ae31
MD5 c03b71e07083d8b7f6e5acd4f44b662d
BLAKE2b-256 3f97da2d050b1d4458ee14d756b7bcbc4472b5bb8a3d94eec8325827b6099d1f

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f4c0fe27d40970912b3a51423530ef0a670ff974ff2d5326a3037eb962606220
MD5 e4e77cf50aa7cf2fae49edf1ee591755
BLAKE2b-256 dc6c1926b4ae36f770b8aa3323fd2ba8cf426dd15260962400d6a4a245c8c2d5

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-win32.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-win32.whl
Algorithm Hash digest
SHA256 85245da4314b9648e85f832b66194fdffc382b6662e856a996689e0bab5d9c6b
MD5 8ae10cd1a1d046032b5eb768a4af09b5
BLAKE2b-256 17796d58bace85941c71f07cd3e6701fb0f5b771c89ffa3f5b9817e8f51434e4

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1553bde38fd182dd99870cd821e7730587bd64519fb75eabea11bf4b776806c5
MD5 c3b2db3d1f33bb04d31a61db2b680326
BLAKE2b-256 2f4636d2fd9756e0f860425263b4b2235f6e44e8e52dc3cc10f8549c1339739f

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7fdcb7472c31861b1f5099edf23faae1689a0f72b9825fac8b76d4c8923df669
MD5 791f803b377d5cc9d801cb6deacb9f62
BLAKE2b-256 337cf1240d43958ab265db4407a24fb8893b43ecb1815d2556e39ae3274022b5

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c50cbb8d2ef1e21acdf35f3c0e1127cfbbc91ec311fea197276283309e14c912
MD5 c29b1bbb9dd59a58db66760bdc19ba26
BLAKE2b-256 642194d00bbbe323c944791a986dd2a81c1ea82abfbee4c2f0d439aee91b2f3d

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4c198aa88d654d58d7305a356156aaf18f2e9a1615e15eed756399c23fdf0382
MD5 2ae5507dba3b684235f3b511afd64b8a
BLAKE2b-256 be499175aa90738ffde06cc738327dc9c516c95913dede52dea854dd6a741ffc

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 cb8d401965aec66bb44a24d4aa293e7d90dd6067a0138e3a260dd1c6b5821a37
MD5 ae6ddd02168188f2f6724c0fd46db39f
BLAKE2b-256 0ade43c335771d7084c0c486d2cf9101c0930ea6a0c055091b1a3f8bf447f5f1

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a1cad65ed268a267d7a6140092e10a99f6423f006ac82ca282364332b8e19a6e
MD5 4048f3e52b031d93e4776b2a5552bc07
BLAKE2b-256 0b2cbd0436ecac2b281df3ed5cc80e53a22437f6e5403b6d357c9e45f8f49c9e

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18f3a6d6fdf912e2a83867a97b86ba98264eab4a9cfbf18efac4f9b7033ef756
MD5 0e7424109bc559e0c62b574a94b47fee
BLAKE2b-256 eaaddf0a10cc8a8592176a32d2519f13af1e6246b7e0067df4fd2b0193a0441a

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.3-cp37-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.3-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ea1f81823befc17350f35c02cf5f3d48a01ea369f0271e63f10c80d332776361
MD5 064ff2dc507b4dfb3f269fc20a7abeef
BLAKE2b-256 688e3baf65bc461f11d948c66d1db3bead615bb6e77083488f78d1325d91aa33

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page