python拼接嵌套json_在python中编写解析嵌套JSON文件的函数

该博客介绍如何改进函数`hasPassed`,以便通过设备名称在复杂的JSON结构中准确获取mTestStatus。函数需遍历整个JSON对象,如'mAutomaticTestList',并针对不同情况处理。
摘要由CSDN通过智能技术生成

我有一个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”的值(在本例中是气压)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值