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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+Windows x86

japanese_address_parser_py-0.3.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5-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.5.tar.gz.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5.tar.gz
Algorithm Hash digest
SHA256 2edfdab023fd011a6d169dce5fd119571c8855ba75e7f633965f4af16a398354
MD5 42eb3bd1af5c97b05224eeba53f72bf3
BLAKE2b-256 da9186a7fac2b5abd4f1cdf65e06f1ccfee8c85187ec522699c80e59f6d0051d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c1a8702b403b7ce9a03d2bffa36cdcb6255f877fdb6bf87c59360fc5235d572c
MD5 07f7a2903f5edf3031bc971d1137d404
BLAKE2b-256 8cf829e6a867801e3822f8b8c954fc9186d7f49bc68bbcf7adf26c9f1ef472e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 fa124c5cc50fe28de043c113c2d76cf6709f8f068fe14c6ff0a29f22914321b5
MD5 b44d05fdf97cf504b8ee6ed579430385
BLAKE2b-256 7b466d68ab130a059b27b4f29a18d81fa82dcc523f4277ccc40b70913c60b9ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 945c6ff2ddfaed3e29d19443cb3bed4cf03f7c6f17f7c768485ed8454aad1975
MD5 ff75cc931e0a3f0ef52aaa26d2563c5a
BLAKE2b-256 5e3e6b0897ef9ca343bb4f5f2cdcc24cdbf52dcb0b0a4cabaa14061c210a786a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 8a999c0373be1c50f2699eb0a2b9fca311963cd5bc8371f0875412d984c3434b
MD5 5c238c388859e24c3f96c3cbdd54d304
BLAKE2b-256 751e3300eab4d8b5062ac961de206724e2a4f19fd8a5e9ad0077ab16e41617cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 2ba144425b76205a59339c5abdc4c609f58437511c85d5906e5a4bb2c9060b4b
MD5 f05929945e5e67cf17085dad2841fb06
BLAKE2b-256 307e73358958a0211d3d013a5dad2a007f5221f56dc2808ecdcb7e074a3579e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e3b48596f98df0c618d6861779acb4e4ce6f927f563f830054fbc5eec34c1186
MD5 a1257668ec1ec10a60b027bbce0fed3d
BLAKE2b-256 871bc22c3dd92c56a346bb14334d1d32626c87d2634b518876efd1687d148654

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 be5c0937b8594adf86478af8575f5e9bc56ed9b75274f38d599f508d869a6e32
MD5 175fc5f29de9a3b191714b26064b1a21
BLAKE2b-256 b233dec28c54369047e3e55c0f5b4d5e6a18dc2c98fe224626e44039b81e26fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc67d4101f4e9494abdc724843a44cbe49148a2c5707a7a10edf35765e22c845
MD5 614c356d8cc484bf2c79403af17b06ef
BLAKE2b-256 35cb7e7c9721f15d90dc7e767c1869c0ae3d5b9142ceec28ca582c63509096e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a638327071a604e077ef77522e8994464043aa26be452f61bcada97f34f41422
MD5 f3e4e34e70de2def44fa865daac990c6
BLAKE2b-256 70ed95ea56db3b9956331d10a3e57c733a347569b7fd31044aaa73279d8990ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.5-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 20936788aaf386ab512adf9f7e34142c4d5255220f53208fdfc3db7a079f2b80
MD5 3f02218fcdf9b522aee2978880b8b96c
BLAKE2b-256 0acaf7c4c7a588cf8ed35df880daf8d19f5cb3f82382d5a33169f59c575e69b3

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