我有一个来自如下所示网站的 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'])
