Python json错误列表索引必须为整数

时间:2018-08-26 05:11:35

标签: json python-3.x

我有json数据:

[{
    "dataType": "detox",
    "hLogging": 0.5,
    "reading": 63.9,
    "minValue": 25,
    "dataValue": [{
        "time": 143221019,
        "value": 44
    }, {
        "time": 1433521119,
        "value": 66
    }, {
        "time": 1433521319,
        "value": 22
    }]
}, {
    "dataType": "epox",
    "hLogging": 3,
    "reading": 61.0,
    "min"Value: 0,
    "dataValue": [{
        "time": 1433521019,
        "value": 55
    }, {
        "time": 1433521119,
        "value": 66
    }, {
        "time": 1433521219,
        "value": 77
    }, {
        "time": 1433521319,
        "value": 88
    }]
}]

有两个data types,它们有自己的data value。该data value包含time,该时间为unix纪元时间。我需要将其转换为正常的日期时间值。为此,我首先使用for解析数据:

for item in range(len(json_data['dataValue'])):
    print(json_data['dataValue'][item]['time'])

但这会引发错误:

string indices must be integers

可能是因为json数据具有字符串值,但是我该如何获取时间值并将其转换为正常的日期时间格式。同样,时间值在datavalue中不是固定的,可以是3、4、5 ... n个项目,因此需要包括范围。请提出一个好方法。

1 个答案:

答案 0 :(得分:0)

您拥有的json数据实际上不是json数据,而是具有元素作为json数据的列表。因此,您必须在解析json数据之前调用列表的索引。

for item in range(len(json_data[0]['dataValue'])):
    print(json_data[0]['dataValue'][item]['time'])

希望这会有所帮助!干杯!