我有一個字典串列,我正在嘗試檢查每個字典中是否有一個名為“tag”的鍵,其值為“staging automator”。如果這是真的,那么創建一個只包含這些字典的新串列。
myList = [
{
"@location": "vsys",
"@name": "reactor-test",
"@vsys": "vsys1",
"dynamic": {
"filter": "'reactor' or 'ACI-Reactor_epg'"
},
"tag": {
"member": [
"reactor"
]
}
},
{
"@location": "vsys",
"@name": "Customer Access",
"@vsys": "vsys1",
"description": "Allowed addresses for external customers",
"static": {
"member": [
"GG-sub"
]
}
},
{
"@location": "vsys",
"@name": "test-dynamic-group",
"@vsys": "vsys1",
"dynamic": {
"filter": "'staging-automator'"
}
},
{
"@location": "vsys",
"@name": "MyDynamicGroup",
"@vsys": "vsys1",
"description": "I edited this via postman because I'm cool.",
"dynamic": {
"filter": "staging-automator"
},
"tag": {
"member": [
"staging-automator"
]
}
}
]
到目前為止,我已經想出了這個,它將告訴我串列中的哪些詞典包含我正在尋找的內容:
for item in myList:
if "tag" in item.keys():
if item["tag"]["member"][0] == "staging-automator":
print("True")
else:
print("False")
else:
print("False")
但我不知道如何從串列中取出那本字典。
uj5u.com熱心網友回復:
希望能幫助到你:
new_list = []
for item in your_dictionaries:
if "tag" in item.keys():
if item["tag"]["member"][0] == "staging-automator":
new_list.append(item)
print(new_list)
uj5u.com熱心網友回復:
在回圈中,您已經有了想要的字典!
在您檢查 的地方staging-automator,item變數是您需要的東西;只需將其附加到新串列即可。
這是如何完成的
new_list = []
for item in myList:
if "tag" in item:
if item["tag"]["member"][0] == "staging-automator":
print("True")
new_list.append(item)
continue
print("False")
print(new_list)
uj5u.com熱心網友回復:
# a is the list of dict you have provided
# Code by @Rishi
tag_list=[]
for i in a:
if "tag" in i:
if i["tag"]['member'][0]=="staging-automator":
tag_list.append(i)
或使用串列理解:
b=[i for i in a if "tag" in i if i["tag"]['member'][0]=="staging-automator"]
print(b)
解釋:
- 剛剛閱讀了串列中的專案,
- 檢查專案中是否存在“標簽”,
- 如果預設然后再次檢查
tags:member屬性是否為“staging-automator”, - 如果那也是真的,那么我已將其附加到
tag_list.
in搜索給定值是否存在于任何資料型別中,例如字串、串列、元組等。
如果你有一個大字典,串列理解會很有用,因為它比普通的for-loop.
uj5u.com熱心網友回復:
使用過濾器而不是回圈。在某些情況下,從回圈內部附加到串列是一個不錯的選擇,但這不是其中之一。
def check_item(item):
return "tag" in item and item["tag"]["member"][0] == "staging-automator"
list(filter(check_item, myList))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436685.html
標籤:Python python-3.x 列表 字典
