簡體   English   中英

python檢查字典鍵是否具有特定值

[英]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

我認為您的主要問題是名稱混亂。 dict1dict2實際上不是字典,而是包含字典的列表。 那可能不是您想要的。 如果是這樣,如果我了解您的需求,

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM