[英]python check if a dictionary key has a certain value
我有一個函數,它以這種結構返回數據:
dict1 = [{'status':u'received'}]
dict2 = [{'status': u'pending'}]
我想檢查狀態並根據狀態返回一些值。 並不是說這對我自己有意義,但是我嘗試這樣做:
if 'received' in dict1.values('status'):
#do something
結果與預期的一樣,“沒有用”。 這只是一個緊急的嘗試。
您的“詞典”實際上是列表。 因此,當您嘗試調用dict1.values()
,您是在列表上調用.values
。 嘗試調用dict1[0].values()
代替:
>>> dict1 = [{'status':u'received'}]
>>> dict2 = [{'status': u'pending'}]
>>> 'received' in dict1[0].values()
True
>>>
要測試列表dict1
是否有字典received
值:
>>> dict1 = [{'status':u'received'}]
>>> any(u'received' in d.values() for d in dict1)
True
要更具體地檢查列表dict1
是否有詞典處於接收狀態:
>>> any(u'received' == d.get('status') for d in dict1)
True
我認為您的主要問題是名稱混亂。 dict1
和dict2
實際上不是字典,而是包含字典的列表。 那可能不是您想要的。 如果是這樣,如果我了解您的需求,
if any(element['status'] == 'received' for element in dict1):
# do something
(尚不清楚在多元素列表的情況下要返回什么,例如[{'status':u'received'}, {'status':u'pending'}]
,或者是否可以得到一些東西這樣;您可能需要根據答案進行修改)
由於您有包含字典的列表,因此可以嘗試
for element in dict1:
if 'received' in element.values():
#then do something
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.