如果字典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
。这似乎很令人费解。
答案 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