使用IF子句

时间:2016-06-13 15:35:33

标签: python python-2.7

为什么下面的代码不适用于列表理解中的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"])

1 个答案:

答案 0 :(得分:1)

理解仍在尝试使用不存在的密钥访问字典。你可以改为:

[item["a"] for k in response for item in response[k] if k == "Contents"]