嵌套的混乱看起来像这样:
{ Users : [
{'Username': 'abc', 'Attributes' : [{'a':'x'},{'b':x'}]},
{'Username' : 'def' ...}
]}
我尝试过:
for k,v in users.items() :
for i in v :
for k,v in i :
if k == 'Username' :
print(v)
错误是
"errorMessage": "too many values to unpack (expected 2)"
尝试:
for v in users['Users'] :
for i in v :
for k in v[i] :
print(k)
错误消息:
"errorMessage": "not enough values to unpack (expected 2, got 1)"
我需要检索“用户名”的值并将其放在简单列表中。有人可以指出我在这里不明白吗?
答案 0 :(得分:1)
你是如此亲密:
usernames = []
for k,v in users.items():
for i in v:
for k,v in i.items():
# ^^^^^^^^ you were just missing one more `.items()` call
if k == 'Username':
usernames.append(v)
答案 1 :(得分:0)
您刚刚犯了一个错误,您必须为该字典创建一个for循环。项,请检查下面的代码,
data = { 'Users' : [{'Username': 'abc', 'Attributes' : [{'a':'x'},{'b':'x'}] }]}
for k,v in data.items() :
for i in v :
for k,v in i.items() :
if k == 'Username' :
print(v)
答案 2 :(得分:0)
有些递归级别可以在这里删除。假设只有1个用户密钥。
data = {
"Users": [
{"Username": "abc", "Attributes": [{"a": "x"}, {"b": "x"}]},
{"Username": "def", "Attributes": [{"a": "x"}, {"b": "x"}]},
]
}
users = data["Users"]
usernames = [user["Username"] for user in users]
print(usernames)