使用Python获取json数据的最快速和更好的方法

时间:2013-11-11 18:35:58

标签: python json

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

1 个答案:

答案 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个请求,您也会受到网络和远程服务器性能的约束。