2012-05-31 3 views
2

Я получаю ответ JSON от моего сервера, где некоторые из ключей могут существовать или не существовать. В основном я использовал группу тернарных операторов для проверки каждого ключа, прежде чем передавать их в метод Django object.create. Вот кое-что вдоль линий, что я имею дело сКак проверить наличие нескольких ключей в python?

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 
) 

и т.д. Конечно, это работает отлично, он просто чувствует, что я делаю что-то неправильно. Есть ли более питонистский способ сделать это? Спасибо.

ответ

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

Словари имеют .get() метод, который может быть вызван с 1 аргумент (то, что вы ищете), или 2 аргументов (то, что вы, глядя вверх, и значения по умолчанию, если не найден). По умолчанию, используя 1 аргумент, get будет просто возвращать None, если ничего не найдено, поэтому вы можете оставить его как есть.

+0

Блестящий! Это именно то, что я искал. Я пытался избежать ключевых ошибок, и это должно было сделать трюк. Спасибо, Кристиан. – Hacknightly

Смежные вопросы