2

サーバーから 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
)

もちろん、これは問題なく動作しますが、何か間違ったことをしているように感じます。これを達成するためのよりpythonisticな方法はありますか? ありがとうございました。

4

1 に答える 1

6
name = incoming.get('name')
age = incoming.get('age')

辞書には、.get()1 つの引数 (探しているもの) または 2 つの引数 (探しているもの、および見つからない場合のデフォルト値) で呼び出すことができるメソッドがあります。デフォルトでは、1 つの引数を使用すると、get は何も見つからない場合に None を返すだけなので、そのままにしておくことができます。

于 2012-05-31T14:11:18.200 に答える