我有很多英国邮政编码。但是,它们格式不正确。有时,它们看起来像SW5 2RT
这样的正常邮政编码,有时它们不会在中间有空格,但仍然有效,例如SW52RT
。但在某些情况下,由于人为因素,它们是错误的,它们看起来像ILovePython
,它们作为邮政编码完全无效。
所以,我想知道如何有效地验证邮政编码(使用Python)?
非常感谢。
=============================================== ==================
编辑:
感谢您:this page的答案。但它似乎只检查邮政编码中的字符,无论它们是字母还是数字,但如果组合有意义,请不要关心。可能存在错误的邮政编码,例如AA1 1AA
,会通过验证。
答案 0 :(得分:3)
答案 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服务或者获取集成片段。