我已经为这个问题挣扎了一段时间了,我在偶尔让它工作和彻底崩溃之间徘徊。在
我的最终目标是取代“!字典中的R是一个随机的城镇名称,来自一个地区/国家,用户可以从中选择。或者举一个具体的例子,基本上是这样的:https://www.mithrilandmages.com/utilities/CityNames.php
在开始简单地上网并将城镇名称的列表复制到.csv后,我意识到这需要很长的时间,而且还不够详尽,而且已经为此建立了数据库。在
所以我试着用GeoCoder和GeoNames让它工作起来……但是我似乎不能让它像我想要的那样工作(或者效率很高)。在
我当前的尝试是一直使用children
直到最小的子级,但是它不太可靠,而且查询需要一段时间。此外,我似乎找不到像United States
这样的名称。
我能找到的所有信息都是返回指定位置的具体长度或IP地址,但这与我要查找的相差甚远。我看到了一个叫做“Faker”的图书馆,但我很确定这也不是我要找的,尤其是我找不到任何关于它的数据库从哪里获取信息的文档。在
我正准备放弃尝试创建一个将单词组合在一起的RNG名称生成器。在
编辑:基本上,我当前的尝试是。。。在
def get_towns(country):
import geocoder
global geonames_username
a = geocoder.geonames(country, key=geonames_username)
b = geocoder.geonames(a.geonames_id, key=geonames_username, method='children')
import random
b_r = random.choice(b)
c = geocoder.geonames(b_r.geonames_id, key=geonames_username, method='children')
[...etc...]
…当我试图将"United States"
作为country输入时,由于某些原因它返回South America
。即使我能解决这个问题,对4-5个问题的孩子来说,不仅效率极低(最终到达城镇大约需要10秒,这意味着50个查询可能需要10分钟[并花费我200个学分;这是一个很小的程序,只有少数人会使用,所以我不会一天用尽5万个查询,但这不是一个好的编码]),但它似乎也经常崩溃(见美国的例子)。
我的问题基本上是,是否有什么明显的缺失,比如通过地名或其他任何方式直接获得随机城镇名称的方法。而且,捆绑近2gb的.txt文件显然不是一个选择。在
目前没有回答
相关问题 更多 >
编程相关推荐