Skip to main content
 首页 » 编程设计

python之提取 JSON 元素

2025年05月04日21tintown

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