【问题标题】:Using Python, how can I validate a UK postcode?使用 Python,我如何验证英国邮政编码?
【发布时间】:2015-09-01 08:39:37
【问题描述】:

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

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

非常感谢。

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

编辑:

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

【问题讨论】:

  • 只需使用正则表达式并在此处查看问题:stackoverflow.com/questions/164979/…
  • 有一些包和代码 sn-ps 用于验证英国邮政编码。为什么不使用它们?
  • 验证地址的最简单方法是发送一封信并让收件人确认他们已收到。
  • 如果您发送一封带有无效邮政编码的信件(在英国),它可能会送达收件人,但由于邮政编码错误导致它被错误地发送,因此很可能会延迟邮寄或手动排序。

标签: python validation postal-code


【解决方案1】:

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

uk-postcode-utils 0.1.0

这里是相同的链接:

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

也请看一下:

Python, Regular Expression Postcode search

【讨论】:

    【解决方案2】:

    您说正则表达式验证仅此而已是正确的。为确保邮政编码“邮政”有效,您需要一个参考集来验证它。每天需要跟踪对英国地址进行大量(低至数千)的更改,我认为这不是仅靠正则表达式就能解决的问题。

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

    无论您采用哪种方式,处理拼写错误和不同的格式都不是问题。大多数第 3 方会为您轻松做到这一点,并且也应该能够应对一些错误(取决于您必须搜索的内容)。他们都将拥有您应该能够轻松实现或获取集成 sn-ps 的 Web 服务。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 此解决方案不适用于在发布的邮政编码列表之后引入的邮政编码,这些邮政编码可能已经过时多年了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      相关资源
      最近更新 更多