[英]How to iterate values inside dictionary of lists in PYTHON
我有一個需要正常工作的復雜方法,但我似乎無法弄清楚為什么它不能正常工作。
我有一本字典如下:
{'view': ['premium_subscribers', 'premium_content'], 'delete': ['admins', 'normal_content', 'premium_content']}
我需要知道如何通過每個特定的鍵值(數組)一一迭代。 例如:
key = delete
for loop (that iterates 1 by 1 through key "delete's" values
takes "admins" value and does some processing
in the next iteration takes normal_content and does same processing
and so on ......
its basically checking for a match to be found.
如果你對我的方法感興趣,我在下面。 它有 3 個字典,並且正在比較它們的鍵值以完成訪問權限。
如果 for 循環正確地遍歷該鍵的每個值,它將按預期開始工作。
def accessPermission(operation, user, object):
domains = dict()
types = dict()
access = dict()
access = json.load(open("access.txt"))
domains = json.load(open("domains.txt"))
types = json.load(open("types.txt"))
print(types)
print(access)
print(domains)
if operation in access.keys():
firstkeyvalue = access.get(operation)[0]
if firstkeyvalue in domains.keys():
if user in domains.get(firstkeyvalue):
for access.get(operation)[0] in access:
if object in types.values():
print("Success")
else:
print("Error: access denied")
else:
print("Error: access denied")
else:
print("Error: access denied")
else:
print("Error: access denied")
似乎您只需要遍歷這樣的元素:
dict = {'view': ['premium_subscribers', 'premium_content'], 'delete': ['admins', 'normal_content', 'premium_content']}
key = 'delete' #set somewhere
for v in dict[key]:
print(v)
#do what you need with that
輸出:
admins
normal_content
premium_content
每個 Value 都是一個list
,因此您需要一個額外的loop
來迭代每個列表的項目:
data_dict = {'view': ['premium_subscribers', 'premium_content'], 'delete': ['admins', 'normal_content', 'premium_content']}
for key in data_dict:
values = data_dict[key]
# iterate over list of values
for v in values:
# Now you have access to each one
print(v)
輸出:
premium_subscribers
premium_content
admins
normal_content
premium_content
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.