我正在尝试检查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)