2013-09-05 52 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

請說明。如果你有_two_用戶「a」,你會得到什麼輸出,並且只有其中一個具有姓氏「ab」?如果多於一個的姓氏是「ab」?如果他們都沒有做什麼呢?如果沒有用戶「a」? – Kevin

+0

這是一個列表,而不是一本字典。因此,檢查列表中的每個項目。 –

+0

我需要更新其中一個用戶名並檢查正確的名稱已更新,但是也可能會添加新名稱,因此我無法確認該訂單。我想檢查「u'first_name」的值是C.但我想確保它是爲{u'first_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

相關問題