我有一个来自如下所示网站的 JSON 响应。我想打印 data
的 'value'
和 'datetime'
键。我无法在 JSON 响应中访问这两个元素。
data= {"parameter_name":"Inst",
"parameter_code":"WL1","data":[
{"value":3.1289999485,"datetime":"2018-07-01T00:00:00+00:00"},
{"datetime":"2018-07-01T00:30:00+00:00","value":3.1859998703},
{"value":3.33099985123,"datetime":"2018-07-01T00:45:00+00:00"},
{"datetime":"2018-07-01T01:15:00+00:00","value":3.22300004959},
{"datetime":"2018-07-01T01:45:00+00:00","value":3.32299995422}]}
我的代码到现在
for element in len(data['data']):
date = element['datetime']
value = element['value']
print value, date
我遇到了错误
for element in len(data['data']):
TypeError: string indices must be integers, not str
最佳答案
您显示为 JSON data
的内容可能不是data
的实际值。如果您尝试像 Python dict
一样访问数据,它会引发 TypeError: string indices must be integers, not str
。您的 JSON data
可能如下所示(注意引号):
# This is JSON, essentialy a string in the format of a Python dict.
data = """{
"parameter_name": "Inst",
"parameter_code": "WL1",
"data":[
{
"value":3.1289999485,
"datetime":"2018-07-01T00:00:00+00:00"
},
{
"datetime":"2018-07-01T00:30:00+00:00",
"value":3.1859998703
},
{
"value":3.33099985123,
"datetime":"2018-07-01T00:45:00+00:00"
},
{
"datetime":"2018-07-01T01:15:00+00:00",
"value":3.22300004959
},
{
"datetime":"2018-07-01T01:45:00+00:00",
"value":3.32299995422
}
]
}"""
使用 Python 标准库 json
包将其转换为 Python dict
:
import json
# This converts the JSON string into a Python dict
data = json.loads(data)
您可以访问 data
和它的“数据”键,然后遍历它(就像您正在做的那样):
for element in data['data']:
print(element['value'], element['datetime'])
关于python - 提取 JSON 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51119989/