Python中检索值的字典嵌套列表
嵌套的混乱如下所示:Python中检索值的字典嵌套列表,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,嵌套的混乱如下所示: { 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) 错
{ 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)"
我需要检索“Username”的值并将它们放在一个简单的列表中。有人能指出我在这里没有得到什么吗?你太接近了:
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)
你刚刚犯了一个错误,你必须为dict做一个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)
这里可以删除递归的一些级别。假设只有一个用户密钥
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)
对于用户中的用户[“用户]:打印(用户[“用户名])
?对于i.项中的k,v()