Python键值错误(Json)

时间:2018-08-14 20:28:53

标签: python json http key

我正在尝试获取这些数据并打印为文本字符串,我遇到的效果最糟!使它工作的问题。

这是我正在与之合作以更好地了解我正在使用环境控制器和我的Sonoff开关相结合的资源 https://github.com/FirstCypress/LiV/blob/master/software/liv/iotConnectors/sonoff/sonoff.py此代码完成后可在两页中使用,因此请忽略温度等键

    m = json.loads(content)
co2  = m["Value"]

在“ TaskValues”下我需要“ Value”的值,在几乎任何情况下,我都应该以正确的形式将其取值?

"Sensors":[
{
"TaskValues": [
{"ValueNumber":1,
"Name":"Switch",
"NrDecimals":0,
"Value":0
}],
"DataAcquisition": [
{"Controller":1,
"IDX":0,
"Enabled":"false"
},
{"Controller":2,
"IDX":0,
"Enabled":"false"
},
{"Controller":3,
"IDX":0,
"Enabled":"false"
}],
"TaskInterval":0,
"Type":"Switch input - Switch",
"TaskName":"relias",
"TaskEnabled":"true",
"TaskNumber":1
}
],
"TTL":60000
}

2 个答案:

答案 0 :(得分:0)

您可以通过

 m['Sensors'][0]['TaskValues'][0]['Value']

答案 1 :(得分:0)

如前所述,

"Value"嵌套在json中。要获得所需的内容,您需要遍历父数据结构:

m = json.loads(content)
# This is a list
a = m.get('Sensors')

# This is a dictionary
sensor = a[0]

# This is a list
taskvalue = sensor.get('TaskValues')

# Your answer
value = taskvalue[0].get('Value')