如果dict没有键或value为空,则python返回None

时间:2018-07-13 19:54:00

标签: python dictionary

如果字典None没有键x或它确实有键但值是空dict,我想返回field

我有results = x.get('field'),如果不存在密钥,它将返回None。如果存在x.get('field')将返回一个字典。如果results返回None,我希望x.get('field')也要成为{}。有一种不错的pythonic方法吗?

目前我有results = x.get('field') if x.get('field') else None。这似乎很令人费解。

2 个答案:

答案 0 :(得分:5)

如果dict包含空字典,则可以使用or运算符显式返回None

results = x.get('field') or None

但是请注意,您将获得None,因为其他类型的值的整体布尔状态为false,例如0''等。

答案 1 :(得分:0)

Python是鸭子类型的,并且字典可以包含任何类型的值。您将必须明确检查返回值是否为dict以及它是否为空。

value = x.get('field')
if value == {}:
    value = None