-1

我正在使用 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 服务限制。
谢谢

4

1 回答 1

2

在 python 方面你无能为力。

如果这个问题对您来说不是问题,您可以考虑使用 latest 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 个请求,您也会受到网络和远程服务器性能的限制。

于 2013-11-11T18:42:17.047 回答