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

2024-10-01 17:35:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

非常感谢。在

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

编辑:

感谢您的回答:this page。但它似乎只检查邮政编码中的字符是字母还是数字,而不关心组合是否有意义。可能有一个错误的邮政编码,如AA1 1AA,通过了验证。在


Tags: 编辑格式错误字母page情况数字this
3条回答

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

您正确地说Regex验证只进行到目前为止。为了确保post代码是“postally”有效的,您需要一个引用集来验证它。每天有大量(低千)的英国地址变化需要跟踪,我不相信这是一个正则表达式可以解决的问题。在

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

处理打字错误和不同的格式不应该是一个问题,你这样做。大多数第三方会很容易为你做到这一点,并且应该能够处理一些错误也(取决于你必须搜索什么)。它们都有您应该能够轻松实现或获取集成片段的web服务。在

您可以使用此软件包:

uk-postcode-utils 0.1.0

这里是相同的链接:

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

另外请看一下:

Python, Regular Expression Postcode search

相关问题 更多 >

    热门问题