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

标签 python street-address data-generation

我正在创建一个依赖于地址的工具。出于测试目的,我想创建大量有效的美国地址。我有 GeoNames postal code data我想为美国大约 41,000 个邮政编码中的每一个生成一些真实地址。

我找到了类似 FakeAddressGenerator 的网站和 FakeName声称生成随机、有效的美国地址。这些网站如何运作?我如何在不依赖抓取这些网站的情况下做同样的事情?

理想情况下,我希望能够在 Python 中执行此操作;使用网络服务很好(似乎 FakeAddressGenerator 或 FakeName 都没有提供这样的网络服务)。

谢谢!

最佳答案

通过谷歌搜索您的问题,我发现了 2 个感兴趣的链接:

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

我不建议抓取虚假地址生成器,因为它们不能保证存在。我也不会在谷歌地图中采样,因为你肯定会被列入黑名单。

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

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


编辑:

如果您有美国所有邮政编码的列表,一个完全自动化的解决方案是使用名为 openstreetmap 的 nominatim 的服务(取决于他们的目录!)

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

在阿拉巴马州的 Columbiana(邮政编码 35051)尝试此示例会产生 397 West College Street。

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

关于python - 生成测试数据 - 如何为给定的美国邮政编码生成有效地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49638992/

相关文章:

python - 如何根据本地位置/旋转在 OpenGL 中移动/旋转对象

python - 何时使用 Tornado,何时使用 Twisted/Cyclone/GEvent/other

android - Google 地理编码服务不可用(地址坐标)

image - Keras 图像数据生成器显示标签

python - 在Python中使用wave连接wav文件

python - 保存 python TempFile 的快速方法?

java - 用于将德国地址拆分为多个部分的正则表达式

德国地址的正则表达式

r - 生成与现有变量具有预定义相关性的二元变量

caching - 从哪里获取数据来比较缓存算法