我正在使用json服务,并且我以这种方式获取数据:
import urllib2
import json
url = "http://nominatim.openstreetmap.org/reverse?format=json&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1"
r = urllib2.urlopen(url)
data = json.load(r)
我需要通过第二个aprox运行10-50个查询。什么是最好的方法呢?
PD:没有json服务限制。
感谢
答案 0 :(得分:2)
在python方面你无能为力。
如果this issue对您来说不是问题,您可以考虑使用最新的simplejson
,这比加载标准库json
要快得多。请记住,虽然直接比较库时反序列化速度更快,但在考虑整个请求/响应周期时,差异可能不值得。
要运行并行请求,您应该尝试grequests:
urls = ["http://nominatim.openstreetmap.org/reverse?format=json&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1",
....
]
requests = (grequests.get(u) for u in urls)
responses = grequests.map(requests)
for r in responses:
print r.json()
显然,即使您并行启动50个请求,您也会受到网络和远程服务器性能的约束。