生成测试数据-如何为给定的美国邮政编码生成有效地址?

Jos*_*eph 2 python data-generation street-address

我正在创建一个依赖地址的工具。为了进行测试,我想创建大量有效的美国地址。我有GeoNames邮政编码数据,我想为美国的〜41,000个邮政编码生成一些真实地址。

我发现FakeAddressGenerator和FakeName之类的网站声称会生成随机的,有效的美国地址。这些网站如何运作?在不依赖抓取这些网站的情况下,我该怎么做?

理想情况下,我希望能够在Python中完成此操作;利用Web服务就可以了(似乎FakeAddressGenerator或FakeName都不提供这种Web服务)。

谢谢!

Lyn*_*Lab 6

搜寻您的问题,我发现了2个有趣的链接:

  1. https://github.com/EthanRBrown/rrad,提供大约3200个真实的匿名地址。
  2. https://openaddresses.io,它也具有指向其开源github的链接以及完整的数据集。

我不建议您删除伪造的地址生成器,因为它们不能保证存在。我也不会在Google地图上抽样,因为您肯定会被列入黑名单。

从下载的zip文件中以2提取数据很容易:它们是包含具有完整地址,zip,lat,lon等的csv文件的zip文件。

以上两个数据集“保证”了地址的存在。我不知道您的其他条件有多艰辛,即每个 41k邮政编码至少具有一个有效地址。如果这是一个严格的约束,我怀疑您会获得这样的数据集开源。


编辑:

如果您拥有美国所有邮政编码的列表,则完全自动化的解决方案是使用称为openstreetmap nominatim的服务(取决于其TOC!)。

1)获取每个邮政编码的纬度,经度(中心点或默认地址):

https://nominatim.openstreetmap.org/search/?format=xml&addressdetails=1&limit=1&country_codes=us&postalcode=35051

2)获取此经纬度的相关地址:

https://nominatim.openstreetmap.org/reverse?format=xml&lat=33.178764&lon=-86.619038&zoom=18&addressdetails=1

尝试在阿拉巴马州的哥伦比亚市(邮政编码35051)使用此示例,将产生397 West College Street。

Nominatim文档位于:https : //wiki.openstreetmap.org/wiki/Nominatim