如何在python中测试多个键的存在?

Hac*_*tly 2 python django

我从我的服务器收到一个JSON响应,其中有几个键可能存在,也可能不存在.在将它们传递给Django object.create方法之前,我主要使用一堆三元运算符来测试每个键.这是我正在处理的事情

incoming = {"name":"hackNightly", "age":25, "field":"web development"}

# here's where it gets nasty
name = incoming["name"] if "name" in incoming else None
age = incoming["age"] if "age" in incoming else None

user = User.objects.create(
   name = name, 
   age = age
)
Run Code Online (Sandbox Code Playgroud)

当然,这很好,只是觉得我做错了.是否有更多的蟒蛇方式来实现这一目标?谢谢.

Chr*_*tts 6

name = incoming.get('name')
age = incoming.get('age')
Run Code Online (Sandbox Code Playgroud)

字典有一个.get()方法,可以使用1个参数(你正在查找的内容)或2个参数(你正在查找的内容,以及未找到的默认值)调用.默认情况下,使用1参数,如果没有找到任何内容,则get将返回None,因此您可以保持原样.