2012-05-31 3 views
2

몇 가지 키가 있거나 없을 수도있는 서버에서 JSON 응답을 수신하고 있습니다. 나는 대부분 삼항 연산자를 사용하여 장고 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 
) 

등을 취급하고있는 무슨의 라인을 따라 뭔가이 잘 작동, 그냥 느낌. 이것을 달성하기위한 좀 더 파이썬 적 방법이 있습니까? 고맙습니다.

답변

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

사전은 (당신이 무엇을 찾고있어) 1 개 인자, 2 개 인자 (당신이 무엇을 찾고 있는지, 그리고 발견되지 않는 경우는 디폴트 값)로 호출 할 수있는 .get() 방법이있다. 기본적으로 1 개의 인수를 사용하면 get이 없으면 None을 반환하므로 그대로 둘 수 있습니다.

+0

Brilliant! 이것은 내가 찾고 있었던 바로 그 것이다. 주요 오류를 피하려고했는데이 트릭을해야합니다. 고맙습니다. – Hacknightly

관련 문제