我有一个类似这样的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
cos,这是与设备名称相对应的'mTestStatus'的值(在本例中是baromperentity)。你知道吗
您有错误的代码格式,应该是:
最后三行向左移动。你知道吗
函数的末尾应该有一个return,当数据不是
list
和dict
时返回,否则sunction将返回None
,并可能导致崩溃。你知道吗试试这个:
相关问题 更多 >
编程相关推荐