解析英国邮政编码
ukpc的Python项目详细描述
ukpc是一个python模块,它将英国邮政编码字符串解析为 组成部分:
- 面积
- 地区
- 扇区
- 单位
安装:
pip install ukpc
目前,只支持Python3.x。如果你需要2.7,请告诉我+ 支持。
用法:
>>> from ukpc import PostCode pc = PostCode('NW3 2RR') >>> str(pc) 'area=NW, district=3, sector=2, unit=RR'
可以按预期获得具有属性的零件。我们还提供 PostCode.farea,PostCode.fdistrict,PostCode.fsector, PostCode.funit属性。有些人把这个部门称为 累计邮政编码不只是 扇区号:
>>> pc.sector '2' >>> pc.fsector 'NW3 2'
farea和area是相同的。funit是输入字符串, 完整的邮政编码。
没有太多的验证,也没有重新格式化邮政编码!一个 如果解析器无法分析字符串,则将引发异常。这个 解析器需要格式良好的大写字符串作为输入。如果你想的话 验证或格式化邮政编码,会出现一些其他项目 做得好:
https://github.com/andersonbispo/ukpcode
https://github.com/hamstah/ukpostcodeparser/blob/master/ukpostcodeparser/parser.py
我们还提供了一个实用程序,用于读取邮政编码文件。文件是 预期为csv,第一列仅作为格式良好的列读取, 大写邮政编码。
from ukpc.utils import iterate_file iterate_file(path, callback=store_pc_in_database)
callback是必须提供的任何可调用项。这会导致 store_pc_in_database()将用PostCode实例调用。
还有一个命令行实用程序调用iterate_file():
(.env)➜ ukpc python -m ukpc.utils postcodes.csv --stats time in secs: 27 areas: 123 districts: 3089 sectors: 12302 units: 401
在此处获取包含地理信息的所有邮政编码的列表:
https://www.doogal.co.uk/PostcodeDownloads.php
我们遵循以下规范:
https://www.mrs.org.uk/pdf/postcodeformat.pdf
测试
pip install pytest cd logtrace pytest test.py --verbose
或
python3 logtrace/test.py