为什么下面的代码不适用于列表理解中的IF条件? "内容"在"响应"中不存在它应该返回空列表。
response={"Contents1" : [ {"a" : 1, "b" : 1},{"a" : 2, "b" : 2},{"a" : 3, "b" : 3 } ] }
lst=[item["a"] for item in response["Contents"] if "Contents" in response]
print(lst)
KeyError:'内容'
以下工作正常,不打印输出为"内容"在"响应"
中不存在if "Contents" in response:
for item in response["Contents"]:
print(item["a"])
答案 0 :(得分:1)
理解仍在尝试使用不存在的密钥访问字典。你可以改为:
[item["a"] for k in response for item in response[k] if k == "Contents"]