解析英国邮政编码

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使用ContentExchange设置请求属性   java Spark/Hdfs/Hdfsclient兼容性   java springcloudstreamkafka配置:instanceCount和instanceIndex   Java中web服务序列化日期   java用动态数据替换占位符   java git gc似乎覆盖了一个packfile,留下了一个打开的文件描述符,其中包含对“oldxxx.pack”的引用   为什么Apache项目对Java版本敏感?   java Anylogic帮助如何在导入的3dobject通过输送机上的多个“站”时更改其颜色?   JavaEclipseNeonM2E可以导入一个大型项目,但似乎不能自动解决依赖关系   java@FindBy搜索具有满足条件的子元素的元素   java如何将ActionEvent e与键绑定一起使用?   java转换以集中方式从外部库抛出的异常   java中用户文件/数据文件与系统/程序文件的区别   java使用变量字符串或字符作为对象名   字体使用Java图形操纵字符串中每个字符的形状   JavaFX图表移动数据   java RandomAccessFile:将所有项设置为相同的字节数?   java Google Play inapp Billing onPurchasesUpdated()错误响应代码1   java在不知道属性名和属性数的情况下处理json对象   java是否可以一次从HazelcastInstance(映射和列表)中删除所有数据?