我是初学程序员,我一直在尝试从API GET请求解析json输出文件,以便提取经度和纬度坐标。
JSON文件看起来像this。
JSON输入文件是here。
我的解析json文件的代码目前如下所示:
ourResult = js['transactions'][0]['meta']
for majorkey, subdict in ourResult.iteritems():
print majorkey
for subkey, value in subdict.iteritems():
print subkey, value
然而,这只是返回'location'键中的一组值,而我正试图进一步提升'lon'和'lat'值。
知道我应该使用什么代码吗?
答案 0 :(得分:0)
据我了解你的问题,你需要这样的话:
js = json.loads(response.content)
ourResult = js['transactions'][0]['meta']
for majorkey, subdict in ourResult.iteritems():
print majorkey
if type(subdict) == dict:
for subkey, value in subdict.iteritems():
print subkey, value
您可以使用代码
打印任意深度的dict
def print_dict_rec( indict ):
for majorkey, subdict in indict.iteritems():
if type(subdict) == dict:
print majorkey
print_dict_rec(subdict)
else:
print majorkey, subdict
print_dict_rec(ourResult)
用于提取键的所有值的代码' lat'和' lon':
def get_values_json( js, res ):
if type(js) == list:
for e in js:
get_values_json(e, res)
elif type(js) == dict:
for k,v in js.iteritems():
if type(v) == dict or type(v) == list:
get_values_json(v, res)
else:
if k == 'lat' or k == 'lon':
res[k].append(v)
res = {'lat':[], 'lon':[]}
get_values_json(js, res)
print res