Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中检索值的字典嵌套列表_Python_Python 3.x_Dictionary - Fatal编程技术网

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()