2013-09-05 2 views
0

목록에 두 개 이상의 데이터 집합이있는 경우 특정 값을 찾는 방법.여러 데이터가 포함 된 사전의 값을 확인하는 방법

예 :

[{u'first_name 'u'a, u'last_name'u'ab '}, {u'first_name'u'c 'u'last_name'U ' cd ',}]

이것은 json을 할 때받는 응답입니다.

사용자 "a"(이름)가 성으로 "ab"를 가진 사람인지 확인하고 싶습니다. 외관 순서가 항상 동일하지는 않습니다.

저는이 코드를 python/robot 프레임 워크에 작성했습니다.

아무도 도와 줄 수 있습니까?

+0

분명히 말하십시오. 사용자 "a"가 있고 그 중 하나만 성이 "ab"이면 어떤 출력을 기대합니까? 둘 이상에 성이 "ab"있다면? 그들 중 누구도하지 않는다면? 사용자 "a"가 없으면 어떻게 될까요? – Kevin

+0

그것은 목록이 아니라 사전입니다. 따라서 목록의 각 항목을 확인하십시오. –

+0

사용자 이름 중 하나를 업데이트하고 올바른 이름이 업데이트되었는지 확인해야하지만 새 이름이 추가되어 주문을 확인할 수 없습니다. "u'first_name '값을 확인하고 싶습니다."C입니다.하지만 {U'cirst_name': u'c ', u'last_name': u'cd ',} 사용자인지 확인하고 싶습니다. –

답변

0

정확하게 이해하면 성이 정확한 이름으로 업데이트되었는지 확인하고 싶습니다. 순서가 알려지지 않았으므로 이름이 변경 될 수 있으므로 성이 고유해야합니다. 당신은 독특한 성과 이름이있는 경우, 그것은 단지 마지막 이름으로, 사전으로 사용자를 저장하는 것이 더 효율적이 될 것이다, 그러나

userlist = [{u'first_name': u'a', u'last_name': u'ab'}, 
      {u'first_name': u'c', u'last_name': u'cd',}] 

for user in userlist: 
    if user['last_name'] == 'cd': 
     if user['first_name'] == 'c': 
      print "correct first name" 
     else: 
      print "incorrect first name" 

:이에 대한 사전의 목록을 사용해야하는 경우 당신은을 통해 루프를해야합니다 키와 첫 번째 이름은 다음과 같습니다.

if userdict['cd'] == 'c': 
    print "correct first name" 
else: 
    print "incorrect first name" 
+0

이것은 목록에 대해 'last_name'을 인식하지 못하기 때문에 작동하지 않습니다. 내가받은 오류는 값이 정수 여야한다는 것입니다. –

+0

'last_name'은 목록이 아니며 사전 키입니다. 위의 코드는 예제 데이터가 있으면 나를 위해 작동합니다. 그런 오류가 발생하는 방법에 대해 더 자세히 설명해야 할 것입니다. 어떻게 last_name을 사용하고 있습니까? – hackyday