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.4.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.4-cp310-abi3-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+Windows x86

japanese_address_parser_py-0.3.4-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.4-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.4-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.4-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.4-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.4-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.4-cp310-abi3-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

japanese_address_parser_py-0.3.4-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.4.tar.gz.

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4.tar.gz
Algorithm Hash digest
SHA256 1536b5998334520cfed3cccd0a8b71becf2b4cc5df106d85f75808f0d5561d16
MD5 fb8892c8180432c4e59efc71f1e4ba89
BLAKE2b-256 c37412a961de4cea75cadc9bfffe4a84fc5664bc92ba073064f1fa2ed6378650

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4364699625ad4e24a85b53b90b5dad48b69ca702fdcb0ddbbcb3510ad24441c7
MD5 d3945eb4d0c78bfc94b96f836dede910
BLAKE2b-256 4b669d2ad88f62fb1a30308a5e17c62d810d466fa39bf3a671e67c54bc3d4b44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 a57736353b9751c76c159a0ba93dddd49c1e86b1c7c7e565ac06fe5331b83261
MD5 4588c1da4ff09dd7c3500212d2d07428
BLAKE2b-256 788d16c69c0115498238b4cc5673c25bd22639c3051ed093d465bcdec8b09189

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d7eaa167306a44ef9008fafb0810af240580275e4ebec1f82289d574e4f4b6e
MD5 147680dc3f92ad019a85055d8b337fcc
BLAKE2b-256 da1f1ea63223e9a39cb5818f5e2a8f5234367a1cfb30cc32c25522cdac86dfd6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 eae84d5e4dacbe81ea2a01b1b70b1690602ec1154cc1c5b5862bd56602576548
MD5 ef986ae60c4eab47203cff40a3f33cf3
BLAKE2b-256 bb2cac0b89ee0fe2e69ced11a220d01ebbd3b5bd96112fcc75311a1c19cbad44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 98a6832971b088859c81d73c6902d2c1c1e6c20ecc2ea1f2003e0da490b6a757
MD5 bb47be80e0e767221907b017ca8b96b6
BLAKE2b-256 b1972ca58bc71eb59747e35a03f75648597f3024bf8904c0bcc68319a8e6f1a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a8b3247d73700ced2fa998383d534c62a68e5726725f91f7a40cb99066eb434e
MD5 4f0456c7f016e6cbaccb1cf2306b5426
BLAKE2b-256 d92d5878b634125b0e3757f731cc1566efc10023101726338add847f8ad79f74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bb1fa0c8c8175c7f1249ca7a8ef2ad0fd411f0a9a0345b48efc4e48725edded7
MD5 6d675b4cfa04d615adb62e612f47486e
BLAKE2b-256 84cb16af4a06db318eca496f194347748336e77a5975cc52c976841b4f7c0262

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3e9d0bc44ab03fc961d6809149d879ad3f87664cfa36746a3526f73e17585e76
MD5 c6b28428b6503b2512775423f2b0123c
BLAKE2b-256 89e8e8aa90dee97be51e5542964fc77c565d02db4da6570d116e6aef8773e7fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0978a9d89ec23cf00db7796ecfbdeb5d26d98333d4e0028616207c91b96d56c
MD5 87cbed879caebe710e2f619d9463ec93
BLAKE2b-256 99d1d1a46b2481146436442f0b9d063c6c6995ff107bb3f0b0fef39998e4dd0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for japanese_address_parser_py-0.3.4-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1219c35baa6a10fc94559f815d29469959c3ce14e0e83b20ec372913662ae866
MD5 7e15e45a486476e220d911b1df32559f
BLAKE2b-256 91206fddfe2843c99717245c7798d59c715fe6dbc370fa2b8753394027867d06

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