我在 DEFAULTS 字典中有兩個嵌套字典:一個叫做 PASSWRD,它有描述特定訊息的對,另一個叫做 COMMANDS,列出我希望在我的程式中使用的命令,以及一些密鑰對的簡要描述。這些密鑰對之一是“密碼”,它被分配了一個數字。
現在,我正在嘗試通過一個小回圈,將“密碼”密鑰對值與 PASSWRD 上的值相匹配。
當我嘗試:
for command, stuff in DEFAULTS["COMMANDS"].items():
print(f"\nCommand: {command}")
print(f'{stuff["Definition"]}')
它很好地列出了所有命令和定義。添加以下行時問題開始:
print(f'{stuff["Password"]}')
它提供以下錯誤訊息: KeyError: 'Password'
任何想法為什么會產生這個錯誤?
最后的想法是產生這樣的東西:
print(DEFAULTS["PASSWRD"][DEFAULTS["COMMANDS"][{stuff}]["Password"]])
這不起作用。然而,
print(DEFAULTS["PASSWRD"][DEFAULTS["COMMANDS"]["ZV"]["Password"]])
效果很好
您可以在下面找到 MWE。
DEFAULTS = {
"PASSWRD" : {
0 : "None",
1: "Requires standard password",
2: "Requires factory password",
},
"COMMANDS" : {
"ZS" : {
"Type" : "SETUP",
"Max Parameters Required" : 1,
"Parameters" : "[,n]",
"Definition" : "Set/Get Seeder delay",
"Password": 0
},
"ZV" : {
"Type" : "SETUP",
"Max Parameters Required" : 1,
"Parameters" : "[,n]",
"Definition" : "Set/Get Variable Sync delay",
"Password": 0
},
}
}
for command, stuff in DEFAULTS["COMMANDS"].items():
print(f"\nCommand: {command}")
print(f'{stuff["Definition"]}')
# print(f'{stuff["Password"]}')
print(DEFAULTS["PASSWRD"][DEFAULTS["COMMANDS"]["QD"]["Password"]])
uj5u.com熱心網友回復:
stuff是COMMANDS迭代中的當前字典,它不是任何東西的鍵。所以使用stuff["Password"]從該字典中獲取密碼。
for command, stuff in DEFAULTS["COMMANDS"].items():
print(f"\nCommand: {command}")
print(f'{stuff["Definition"]}')
print(DEFAULTS["PASSWRD"][stuff["Password"]])
演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/338043.html
