Python - 过滤dict JSON响应只发回两个值或转换为字符串?

时间:2016-09-28 22:51:53

标签: python json string dictionary filter

我在Python中操纵一个调用API并在JSON中获得有效结果的URL。

我只需要[result]

提供的'纬度'和'经度'

但是,我似乎无法找到任何处理发送dict值的好方法。

我试图将JSON转换为字符串,但由于我的最终目标是将纬度和经度附加到另一个URL,这看起来很愚蠢?

一直在寻找,似乎正在解决DICT的常见问题。

有人能指出我正确的方向吗?

我的代码(已运行)

import urllib2
import json
Postcode = raw_input("Hello hello hello, what's your postcode..?  ")
PostcodeURL = 'https://api.postcodes.io/postcodes/' + Postcode
json_str = urllib2.urlopen(PostcodeURL).read()
d = json.loads(json_str)
print(d)

输出如下:

{u'status': 200, u'result': {u'eastings': 531025, u'outcode': u'N8', u'admin_county': None, u'postcode'

2 个答案:

答案 0 :(得分:0)

你有一个嵌套字典,所以使用正确的键访问它的值:

d = json.loads(json_str)
lat, long = d['result']['latitude'], d['result']['longitude']
newurl = url + '?' + 'lat=' + lat + '&lon=' + lon

答案 1 :(得分:-1)

您可以像字典一样访问JSON对象。因此,要从结果中获取纬度和经度,您可以使用:

lat, long = d[result][latitude], d[result][longitude]

将这些文件加载​​到字符串中,进行错误检查,然后将它们附加到新的URL中。