解析英国邮政编码

ukpc的Python项目详细描述


Build Status

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.fareaPostCode.fdistrictPostCode.fsectorPostCode.funit属性。有些人把这个部门称为 累计邮政编码不只是 扇区号:

>>> pc.sector
'2'
>>> pc.fsector
'NW3 2'

fareaarea是相同的。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

性能

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何删除列表中的重复项并将列表复制到另一个列表中   Java如何在非UI应用程序中检测tab键按下?   java无法在未调用Looper的线程内创建处理程序。警报对话框线程上的prepare()   java Jaxb将XML转换为ElementNSImpl类型,而不是正确的类型   基于java标记的过滤实现Firestore   我们可以使用Java和Eclipse使用YouTube分析Api吗?   JavaSpring注释在多个选项卡中同时打开多个视图   java Hibernate不使用JBOSS检索数据   矩阵如何从Apache Commons数学Java库中找到伪逆   对象Java打印“null”作为字符串引用!=使无效   java中的图形慢映射   java用户界面:操作栏和上下文操作栏,新趋势   java Infinispan,版本化操作返回不正确的结果   java调整保存在父JFrame中的JInternalFrame的大小,并且该父JFrame使用ComponentMover API注册   java如何防止会话属性在服务器上持久化?   java如何为SpringBoot 2创建自定义嵌入式servlet容器   使用Robolectric进行单元测试时,在片段类内调用getString()时发生java IllegalStateException