我有一个JSON文件,看起来像这样:
{
"mAutomaticTestCompleted": true,
"mAutomaticTestList": [
{
"mName": "acceleratorEntity",
"mTestStatus": true,
"mX": 3.8043518,
"mY": 8.114105,
"mZ": -3.3895721
},
{
"mName": "barometerEntity",
"mTestStatus": false,
"mValue": 0
}]
}
实际上有很多领域
mAutomaticTestlist
,它们都是类似的对象列表。
我需要写一个函数
device_name
和json本身作为其参数,并返回
mTestStatus
字段。
这是我的尝试:
def hasPassed(device_name, data):
if isinstance(data, dict):
for key, value in data.items():
if not isinstance(value, dict) and not isinstance(value, list):
if key == 'mName' and value == device_name:
return data['mTestStatus']
else:
return hasPassed(device_name, value)
elif isinstance(data, list):
for element in data:
return hasPassed(device_name, element)
这个函数的问题在于它不会遍历整个JSON对象。
编辑:
所以我希望我的功能可以这样工作:
hasPassed('barometerEntity', json_obj)
会回来的
False
因为这是对应设备名称的“mteststatus”的值(在本例中是气压)。