87

当我试图从 JSON 字符串中检索值时,它给了我一个错误:

data = json.loads('{"lat":444, "lon":555}')
return data["lat"]

但是,如果我遍历数据,它会给我元素(latlon),而不是值:

data = json.loads('{"lat":444, "lon":555}')
    ret = ''
    for j in data:
        ret = ret + ' ' + j
return ret

返回:lat lon

我需要做什么才能获得latand的值lon?(444555)

4

5 回答 5

110

如果要遍历字典的键和值,请执行以下操作:

for key, value in data.items():
    print key, value
于 2012-09-10T14:04:09.650 回答
73

它给你什么错误?

如果你这样做:

data = json.loads('{"lat":444, "lon":555}')

然后:

data['lat']

根本不应该给你任何错误。

于 2012-09-10T14:04:35.237 回答
14

使用 Python 从提供的 Json 中提取值

Working sample:-

import json
import sys

//load the data into an element
data={"test1" : "1", "test2" : "2", "test3" : "3"}

//dumps the json object into an element
json_str = json.dumps(data)

//load the json to a string
resp = json.loads(json_str)

//print the resp
print (resp)

//extract an element in the response
print (resp['test1'])
于 2016-02-19T16:23:05.313 回答
6

使用您的代码,这就是我的做法。我知道选择了一个答案,只是提供了其他选项。

data = json.loads('{"lat":444, "lon":555}')
    ret = ''
    for j in data:
        ret = ret+" "+data[j]
return ret

当您以这种方式使用“for”时,您将获得对象的键,而不是值,因此您可以通过使用键作为索引来获取值。

于 2013-03-01T23:43:14.160 回答
6

有一个 Py 库,它有一个模块,可以方便地访问类似 Json 的字典键值作为属性:https://github.com/asuiu/pyxtension 您可以将其用作:

j = Json('{"lat":444, "lon":555}')
j.lat + ' ' + j.lon
于 2015-10-17T19:22:29.943 回答