Skip to main content

中国地址随机生成器

English

CI Release PyPI Python License

基于权威内置数据随机生成中国行政区划地址。运行时完全离线、没有第三方依赖,支持 Python 3.8–3.14。

当前数据来自民政部国家地名信息库,截止日期为 2025-12-31;截至 2026-08-25, 这是官方发布的最新年度行政区划代码数据。

安装

pip install chinese-address-generator

Python API

需要结构化结果时,推荐使用 generate_address()

from chinese_address_generator import generate_address

address = generate_address(level=4)

print(address)  # 安徽省宣城市绩溪县上庄镇 341824103
print(address.full_name)  # 安徽省宣城市绩溪县上庄镇
print(address.code)  # 341824103
print(address.province)  # 安徽省
print(address.prefecture)  # 宣城市
print(address.county)  # 绩溪县
print(address.township)  # 上庄镇
print(address.as_dict())  # 可直接进行 JSON 序列化的字典

各级含义严格对应官方发布的行政区划建制:

级别 行政区划 返回代码 内置记录数
L1 省级 6 位 33
L2 地级 6 位 333
L3 县级 6 位 2,845
L4 乡级(镇、乡、街道等) 9 位 38,723

某些权威层级会跳级。例如,直辖市的县级单位直接隶属于省级直辖市。因此 Address 会 保留真实层级路径,不会人为构造一个地级占位节点。

可复现的随机结果

from chinese_address_generator import AddressGenerator

generator = AddressGenerator(seed=2026)
print(generator.generate(level=4))

兼容旧版字符串 API

0.x 的函数名在兼容期内仍然可用,并返回 "完整地址 代码" 字符串,但调用时会发出 DeprecationWarning。请主动迁移到对应的下划线命名 API:

from chinese_address_generator import generator

generator.generatelevel1()  # 请改用 generate_level1()
generator.generatelevel2()  # 请改用 generate_level2()
generator.generatelevel3()  # 请改用 generate_level3()
generator.generatelevel4()  # 请改用 generate_level4()

generate_level1()generate_level4() 是推荐使用且不会发出弃用警告的字符串 API。

读取数据和元数据

from chinese_address_generator import get_data_metadata, load_divisions

townships = load_divisions(level=4)
metadata = get_data_metadata()
print(metadata["data_as_of"])  # 2025-12-31

命令行

$ cnaddrgen --level 4 --num 2
安徽省宣城市绩溪县上庄镇 341824103
河北省石家庄市长安区建北街道 130102001

$ cnaddrgen --level 4 --seed 2026 --json
{"address": "...", "code": "...", "level": 4, ...}

也可以使用 python -m chinese_address_generator

数据权威性与 L4 说明

数据来源为民政部国家地名信息库发布的 行政区划代码。官方说明明确指出,该数据 包括全国省、地、县、乡四级行政区划建制,截至 2025-12-31;其中省、地、县级代码由 国务院民政部门确定,乡级代码由省、自治区、直辖市人民政府民政部门确定。

因此,L4 是从权威乡级记录中随机抽取,并不是随机拼接或编造名称。项目不包含村/社区级 城乡划分代码、邮政地址、门牌号或经纬度。

官方数据将台湾省代码标记为“资料暂缺”,因此项目在元数据中记录这一排除项,但不会生成 没有数字代码的结果。香港、澳门可参与 L1 生成;该数据集未提供其更低层级记录。

使用 uv 开发

uv sync
uv run pytest
uv run ruff check .
uv build
uv run twine check dist/*

Ruff 会强制执行 PEP 8 代码规则和 PEP 257 docstring 规则;测试的语句及分支覆盖率门槛为 100%。

从官方接口刷新数据:

uv run python tools/update_data.py

更新工具会校验记录总数、代码长度、唯一性及所有父子关系,然后以原子方式替换内置数据。 只有在官方页面公布新的年度快照后,才应调整工具中的表名和数据截止日期。

许可证

项目代码使用 MIT License

Release files for chinese-address-generator 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chinese-address-generator 1.0.0
File Size Uploaded
chinese_address_generator-1.0.0.tar.gz 483.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chinese-address-generator 1.0.0
File Interpreter ABI Platform
chinese_address_generator-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 880.4 kB

Release files / chinese_address_generator-1.0.0.tar.gz

Download URL chinese_address_generator-1.0.0.tar.gz
Size 483.4 kB
Tags Source
SHA-256 checksum
How to use checksums
afa140506959167cc14e2130cb4453741068467895f37565f3d0999bfc9bde2b
BLAKE2b-256 checksum
How to use checksums
123f65dd2e6f9e8a7feb7adbc7bf760ec9a9abd26615c3c3b00669052a185162
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release files / chinese_address_generator-1.0.0-py3-none-any.whl

Download URL chinese_address_generator-1.0.0-py3-none-any.whl
Size 396.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9832ee104edcd3ec5f9ce4bdd5fd10713de90299e733fc2a8b3bec70a514f1a
BLAKE2b-256 checksum
How to use checksums
aaaea17aedf2514cc6faeb663d9d712382a2a5d2ad4ab9889ac8feb2d07d24b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.2.0

2 release files

0.1.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page