生成测试数据-如何为给定的US zipcode生成有效地址?

2024-06-15 02:51:22 发布

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

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

我发现了像FakeAddressGeneratorFakeName这样的站点,它们声称生成了随机的、有效的美国地址。这些网站是如何运作的?我怎么能做同样的事情,而不依靠刮这些网站?

理想情况下,我希望能够在Python中做到这一点;使用web服务是很好的(FakeAddressGenerator或FakeName似乎都不提供这样的web服务)。

谢谢!


Tags: 工具目的webdata站点网站地址code
1条回答
网友
1楼 · 发布于 2024-06-15 02:51:22

在谷歌上搜索你的问题,我发现了两个感兴趣的链接:

  1. https://github.com/EthanRBrown/rrad提供大约3200个真实匿名地址。
  2. https://openaddresses.io还有一个指向他们的开源github的链接,其中包含完整的数据集。

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

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

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


编辑:

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

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

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

2)获取该纬度的相关地址,lon:

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

在阿拉巴马州的Columbiana尝试这个例子(邮政编码35051)可以得到397 West College Street。

提名文件位于:https://wiki.openstreetmap.org/wiki/Nominatim

相关问题 更多 >