检查是否存在使用Python的JSON键



我正在尝试检查Json文件中是否存在密钥。密钥名称是child,在某些情况下它存在,而在一些情况下它不存在。示例1-密钥不存在:

"customfield_11723": {
"self": "https://ies-data-jira.ies.data.com/rest/api/2/custom/16110",
"value": "DATA_MDM",
"id": "16110",
"disabled": false
},

示例2-密钥存在:

"customfield_11723": {
"self": "https://ies-data-jira.ies.data.com/rest/api/2/customFieldOption/16118",
"value": "DATA_QM",
"id": "16118",
"disabled": false,
"child": {
"self": "https://ies-data-jira.ies.data.com/rest/api/2//16124",
"value": "Installation",
"id": "16124",
"disabled": false
}

json文件中的密钥路径是['issues]['fields']['customfield_11723']['child']我的代码如下:

for i in todos['issues']:

if i['fields']['customfield_11723']['child'] in i['fields']['customfield_11723']:
print("True"

当我在"child"不存在的情况下运行此程序时,在ketError:'child'上给出了异常

使用keys()dict方法检查密钥的存在:

if "child" in i["fields"]["customfield_11723"].keys():
print(True)

keys()方法返回字典中所有关键字的列表。

在您的特定情况下,您需要询问:

# .keys() is optional but more explicit
if "child" in i['fields']['customfield_11723'].keys():
print("True")

就我个人而言,在这种情况下,我会尝试将walrus运算符与dict.get()方法结合使用:

if child := i['fields']['customfield_11723'].get("child"):
print(child)

最新更新