gpt4 book ai didi

python - 使用Python解析Json文件时出现关键错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:44:30 28 4
gpt4 key购买 nike

我们的源为 Json 文件,我们正在尝试解析数据并创建输出 CSV 文件

在某些情况下,我们没有收到 Json 文件中的某些属性。

当我尝试使用下面的代码来获取长度及其值时,我收到“关键错误”。下面是我的代码。

for j in range(len(json_file['entity'][i]['data']['attrb']['DEPT']['group'])):
for key in json_file['entity'][i]['data']['attrb']['DEPT']['group'][j].keys():
try:
temp[key] = json_file['entity'][i]['data']['attrb']['DEPT']['group'][j][key]['values'][0]['value']
except:
temp[key] = None

['entity'][i]['data']['attrb'] 将始终可用,但 'DEPT' 对于某些 json 文件我可能没有。

错误:

"Key Error: 'DEPT' not found ".

我怎样才能克服这个问题,请帮助我提出任何建议..

请查找以下示例数据..

{
"entity": [
{
"data": {
"attrb": {

"DEPT": {
"group": [
{
"DEPTID": {
"values": [
{
"value": "D12345"
}
]
},
"DEPTNO": {
"values": [
{
"value": "302222201"
}
]
}
}
]
}
}
}
}
]

}

最佳答案

让我们一步步分解。

你的字符串是

import json   

json_string = '''{
"entity": [
{
"data": {
"attrb": {
"DEPT": {
"group": [
{
"DEPTID": {
"values": [
{
"value": "D12345"
}
]
},
"DEPTNO": {
"values": [
{
"value": "302222201"
}
]
}
}
]
}
}
}
}
]
}'''

以及生成的 json 字典:

test = json.loads(json_string)

首先,返回所有属性(您提到的“attrib”被假定为有效键)。

attribs = [test['entity'][i]['data']['attrb'] for i in range(len(test['entity']))]

现在属性输出如下

>>> attribs
[{'DEPT': {'group': [{'DEPTID': {'values': [{'value': 'D12345'}]},
'DEPTNO': {'values': [{'value': '302222201'}]}}]}}]

随后,正如您所提到的,“DEPT”可能是也可能不是有效的 key 。从现在开始我们使用 de dict.get 方法:

dept = attribs[0].get('DEPT')
>>> dept
{'group': [{'DEPTID': {'values': [{'value': 'D12345'}]},
'DEPTNO': {'values': [{'value': '302222201'}]}}]}

但是,如果“DEPT”不是有效 key ,则 get('DEPT') 将返回 None:

_dict= {}
>>> print(_dict.get('DEPT'))
None

或者,如果您希望返回 None 之外的其他默认值,那么您将

_dict.get('DEPT', your_default_value)

其中 your_default_value 是任意变量。

希望这有帮助。

关于python - 使用Python解析Json文件时出现关键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56685070/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com