当我尝试从JSON字符串中检索值时,它给出了一个错误:
data = json.loads('{"lat":444, "lon":555}')
return data["lat"]
但是,如果我迭代数据,它会给我元素(lat
和lon
),但不是值:
data = json.loads('{"lat":444, "lon":555}')
ret = ''
for j in data:
ret = ret + ' ' + j
return ret
返回:lat lon
要获取lat
和lon
的值,我需要做什么? (444
和555
)
答案 0 :(得分:74)
如果要迭代字典的键和值,请执行以下操作:
for key, value in data.items():
print key, value
答案 1 :(得分:38)
它给你带来了什么错误?
如果你这样做:
data = json.loads('{"lat":444, "lon":555}')
然后:
data['lat']
不应该给你任何错误。
答案 2 :(得分:7)
使用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'])
答案 3 :(得分:4)
使用您的代码,我就是这样做的。我知道选择了一个答案,只是提供了额外的选择。
data = json.loads('{"lat":444, "lon":555}')
ret = ''
for j in data:
ret = ret+" "+data[j]
return ret
当您在此庄园中使用for时,您将获得对象的键,而不是值,因此您可以使用键作为索引来获取值。
答案 4 :(得分:4)
有一个Py库,它有一个模块,可以方便地访问类似Json的字典键值:https://github.com/asuiu/pyxtension 您可以将其用作:
j = Json('{"lat":444, "lon":555}')
j.lat + ' ' + j.lon