使用Python,我如何验证英国邮政编码?

时间:2015-09-01 08:39:37

标签: python validation postal-code

我有很多英国邮政编码。但是,它们格式不正确。有时,它们看起来像SW5 2RT这样的正常邮政编码,有时它们不会在中间有空格,但仍然有效,例如SW52RT。但在某些情况下,由于人为因素,它们是错误的,它们看起来像ILovePython,它们作为邮政编码完全无效。

所以,我想知道如何有效地验证邮政编码(使用Python)?

非常感谢。

=============================================== ==================

编辑:

感谢您:this page的答案。但它似乎只检查邮政编码中的字符,无论它们是字母还是数字,但如果组合有意义,请不要关心。可能存在错误的邮政编码,例如AA1 1AA,会通过验证。

3 个答案:

答案 0 :(得分:3)

您可以将此包用于您的目的:

uk-postcode-utils 0.1.0

这是相同的链接:

https://pypi.python.org/pypi/uk-postcode-utils

另请查看:

Python, Regular Expression Postcode search

答案 1 :(得分:2)

英国国家统计局publishes a list of UK postcodes, both current and retired,因此您可以从最新的.csv下载中删除相关列,复制当前删除空格的列,然后进行查找(可能是最好使用适当的数据库,例如带有索引的MySQL)。

答案 2 :(得分:1)

你说Regex验证到目前为止是正确的。为了确保邮政编码“有效”,您需要一个参考集来对其进行验证。每天要对英国地址进行大量(数千次)更改以跟踪,我不相信这是正则表达式可以解决的问题。

有两种方法可以做到这一点,要么使用第三方来帮助您捕获完整的&正确的地址(许多可用包括https://www.edq.com/uk/products/address-validation/real-time-capture(我的公司)),或从Royal Mail获取数据并实施您自己的解决方案。

使用拼写错误和不同格式应该不会成为问题。大多数第三方将为您轻松完成此任务,并且应该能够应对一些错误(取决于您必须搜索的内容)。他们都将拥有您应该能够轻松实现的Web服务或者获取集成片段。