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.6.tar.gz (61.1 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.6-cp310-abi3-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10+Windows x86-64

japanese_address_parser_py-0.3.6-cp310-abi3-win32.whl (2.0 MB view details)

Uploaded CPython 3.10+Windows x86

japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

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

japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

japanese_address_parser_py-0.3.6-cp310-abi3-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

japanese_address_parser_py-0.3.6-cp310-abi3-macosx_10_12_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6.tar.gz
Algorithm Hash digest
SHA256 dba44ee1ef4bc85bc74d8277cc5dde303f62824e8fd342683d257cfd76d3b755
MD5 acd4e8a32a9d72c0181f60501b8da902
BLAKE2b-256 d1bec1370cd9958cbcd403d69f3cbe390bf9ad00e86d7de0dafa75bf2a6a8717

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a016561c988f67f2a98cd419198e11d58ebf697a7dc471fd36bd5ad62807fdb1
MD5 fb620e58e79b051c4f528063edad1f5c
BLAKE2b-256 0bcbb5dbf6f40184411d2b3bafb2431a6156e1577136605040111e548a1eeb8b

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-win32.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 68f46d6f1254b6bcda70591dde102a611053cfd4049aab42f34208766d55692d
MD5 86fb1c91e4d22c9b24a3965e1de1cc6c
BLAKE2b-256 a8d63f3b14c79304492fa89cd0a5a67f0221c8e9a5ee2d73da1fbea6460327ec

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28bbd8c87b495842e55b951f8f0e1d8ebd8065c128cce05eec54404ff070ced6
MD5 95b4f2c5d9f02af3ca8f07cb17f35a67
BLAKE2b-256 fea6541d0c99a714c7b3030dd022a8a033092633913c600bdb0f1c2b01409f79

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5990660be1c360ed1c351839ee9f35d1b72ea855b1c81df1b5e73721b5b224b6
MD5 be434df7baf03cd7547622b7cd6ec4ff
BLAKE2b-256 55c93a5aee4ae0dcad48b336fbc9031ca8da4f76dcc9bcb8fd4a5ff356f7e081

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 acae44d7ca965d04dcf0d8708db92fe518317f31fec352b47f162b0220a34229
MD5 1440fc8bc7b5e30b465d5f93d8caa74c
BLAKE2b-256 7b1c4638c1bad19bd5d6b79cc5627a273d39e7151a40b14739a72863c6adc4e1

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 21b3c4fd34c9a49151d20e0ed9b049dd30a5f9f98610163f7f6cc5804bb8d4fc
MD5 6fa111562d3d528634f77074d8924927
BLAKE2b-256 9338d4b8e440976d8a2f6b865dcdbf95f3bd02e8f28ea25ed74ec4f8cd6cb433

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ad8d81b2b11685b0d5b8b81d1fbf4954679eb67295d13b63fa0fab9e523041d6
MD5 6618fb6dc5dcb0c429df0cb4669cb65e
BLAKE2b-256 badb8b2e3b51d0945eb2e187b71430dfd98974661345e5d8694bd0a7d52db3c1

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9166e910bf339edb7b0990a242c0e235b421e3961da18f3c698ef48e1a747e1c
MD5 1ecba305d036e39d2982bd21374f3f2f
BLAKE2b-256 6f37fc00dc17df4a3d512d42ff78921335ca5cd6ce74a7ebd8d624d137856d31

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ffd1e265fcb472d01631fb671fe858fdceb38e4d00826c25f1c8e4bfccc8e753
MD5 26abd40a930a11abe61ec7242a8ea62f
BLAKE2b-256 3b7a28a309ae8b0f6e320dc4a893b1113c6525a55ed905bfa96104d3213c68f4

See more details on using hashes here.

File details

Details for the file japanese_address_parser_py-0.3.6-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.6-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fa2d07ba3ddb652475553a6988f96a98cb926ffc349c2dc288ca118adface277
MD5 5168fd16089ae1efcf09c4ecefbacb51
BLAKE2b-256 3772895adacdf2571976c10216acddbcabe871e7e98370a0f92b9233d7e7adc7

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