json格式不正确?



首先,我是Python和JSON的新手。我试图从API请求响应中提取一个值,并且我很难解析出我需要的数据。我已经做了很多关于如何做到这一点的搜索,但是大多数使用格式化字符串或文件的示例比我得到的要基本得多。我理解键值对的概念,但我不确定如何引用我想要的键值。我认为这与响应有多个对象具有相同的kay名称有关。或者是第一行"书签"把事情弄得很愚蠢。我想要的值是下面响应示例中的模型名。这就是我所需要的。如有任何帮助,我将不胜感激。

{
"Bookmark": "<B><P><p>SerNum</p><p>Item</p></P><D><f>false</f><f>false</f></D><F><v>1101666</v><v>ADDMASTER IJ7102-23E</v></F><L><v>123456</v><v>Model Name</v></L></B>",
"Items": [
[
{
"Name": "SerNum",
"Value": "123456"
},
{
"Name": "Item",
"Value": "Model Name"
},
{
"Name": "_ItemId",
"Value": "PBT=[unit] unt.DT=[2021-07-28 08:20:33.513] unt.ID=[eae2621d-3e9f-4515-9763-55e67f65fae6]"
}
]
],
"Message": "Success",
"MessageCode": 0
}

如果您想查找键为'Name'和值为'Item'的字典的值,您可以:

import json
with open('your_data.json', 'r') as f_in:
data = json.load(f_in)
model_name = next((i['Value'] for lst in data['Items'] for i in lst if i['Name'] == 'Item'), 'Model name not found.')
print(model_name)

打印:

Model Name

注意:如果字典中没有找到字符串'Model name not found.'则返回

首先,将JSON加载到python字典:

import json
x = '''{
"Bookmark": "<B><P><p>SerNum</p><p>Item</p></P><D><f>false</f><f>false</f></D><F><v>1101666</v><v>ADDMASTER IJ7102-23E</v></F><L><v>123456</v><v>Model Name</v></L></B>",
"Items": [
[
{
"Name": "SerNum",
"Value": "123456"
},
{
"Name": "Item",
"Value": "Model Name"
},
{
"Name": "_ItemId",
"Value": "PBT=[unit] unt.DT=[2021-07-28 08:20:33.513] unt.ID=[eae2621d-3e9f-4515-9763-55e67f65fae6]"
}
]
],
"Message": "Success",
"MessageCode": 0
}'''
# parse x:
y = json.loads(x)
# The result is a Python dictionary. 

现在,如果你想要值'模型名称',你可以这样做:

print(y['Items'][0][1]['Value'])

最新更新