【发布时间】:2019-06-20 11:32:56
【问题描述】:
我们将 Source 作为 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 文件我可能没有它。
错误:
“关键错误:找不到‘DEPT’”。
我该如何克服这个问题,请帮助我提出任何建议..
请在下面找到示例数据..
{
"entity": [
{
"data": {
"attrb": {
"DEPT": {
"group": [
{
"DEPTID": {
"values": [
{
"value": "D12345"
}
]
},
"DEPTNO": {
"values": [
{
"value": "302222201"
}
]
}
}
]
}
}
}
}
]
}
【问题讨论】:
-
为了帮助您,我们还需要查看 JSON 数据。
-
顺便说一句,您正在以一种非常非 Pythonic 的方式迭代该
['group']字典。查看.items()而不是range()和.keys()。 -
@AKX ... 非常感谢您的回复。我将在几分钟内添加示例文件。
-
使用
dict.get()方法代替[],即json_file.get('entity', [])代替json_file['entity'] -
用于带有不确定键的字典。使用 dict.get(key, default) 代替。如果键不存在,它将返回默认值