我在我的 Django 應用程序中使用會話。request.session['permissions']結構如下。每個值的鍵都相同?;旧纤且粋€字典列表[{'mykey': 'value1'}, {'mykey': 'value2'}, {'mykey': 'value3'}, {'mykey': 'value4'}, {'mykey': 'value5'}, {'mykey': 'value6'}]permissions = request.session['permissions']現在我想檢查value4里面是否存在permissions。我不知道如何檢查價值。每當我試圖訪問這樣的價值時permissions.mykey它給了我錯誤'list' object has no attribute 'mykey'我想做類似的事情permissions = request.session['permissions']if value not in permissions: print('Value is inside list')
3 回答
慕姐8265434
TA貢獻1813條經驗 獲得超2個贊
使用 for 循環獲取單個字典,然后檢查鍵
for perm in permissions:
if value in perm.values():
print('Value is inside list')
阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
我認為您可以使用filter這樣做:
permissions = request.session['permissions']
exists = list(filter(lambda x: x.get('mykey') == 'value4', permissions)) # for python 3
# for python2
# exists = filter(lambda x: x.get('mykey') == 'value4', permissions)
if len(exists) > 0:
print('value4 exists')
江戶川亂折騰
TA貢獻1851條經驗 獲得超5個贊
正如其他答案所指出的那樣。問題是您試圖在列表對象上使用字典訪問器。由于permissions是字典列表,因此您需要檢查列表中的所有字典以查找value4. 這可以通過多種方式完成,在我看來,最 Pythonic 的方式是使用列表理解,例如[value4 == d for d['mykey'] in permissions]
添加回答
舉報
0/150
提交
取消
