Python 将列表列表转换为可以转换为Json的字典

Python 将列表列表转换为可以转换为Json的字典,python,json,dictionary,Python,Json,Dictionary,我有一个Python列表,需要转换为字典或json,我的列表如下所示: [ ['user1', 'Administration', 100], ['user2', 'Development', 170], ['user2', 'Testing', 30], ['user3', 'Administration', 95], ['user3', 'Development', 400], ['user3', 'Testing', 200] ] 我需要这个看起来像这样: { "us

我有一个Python列表,需要转换为字典或json,我的列表如下所示:

[
 ['user1', 'Administration', 100],
 ['user2', 'Development', 170],
 ['user2', 'Testing', 30],
 ['user3', 'Administration', 95],
 ['user3', 'Development', 400],
 ['user3', 'Testing', 200]
]
我需要这个看起来像这样:

{
    "user1": {
        "Administration": 100
        },
    "user2": {
        "Development": 170,
        "Testing": 30
    }, 
    "user3": {
        "Administration": 95,
        "Development": 400,
        "Testing": 200
    }
}
最好的方法是什么?我当前的循环覆盖了密钥,如果用户已经存在,我需要它添加相应的属性

谢谢大家!

使用dict.setdefault

例:

输出:

{'user1': {'Administration': 100}, 'user2': {'Development': 170, 'Testing': 30}, 'user3': {'Administration': 95, 'Development': 400, 'Testing': 200}}
使用dict.setdefault

例:

输出:

{'user1': {'Administration': 100}, 'user2': {'Development': 170, 'Testing': 30}, 'user3': {'Administration': 95, 'Development': 400, 'Testing': 200}}
使用collections.defaultdict对象的简短方法:

输出:

使用collections.defaultdict对象的简短方法:

输出:

为了便于理解

输出:

{'user1': {'Administration': 100}, 'user2': {'Development': 170, 'Testing': 30}, 'user3': {'Administration': 95, 'Development': 400, 'Testing': 200}}
为了便于理解

输出:

{'user1': {'Administration': 100}, 'user2': {'Development': 170, 'Testing': 30}, 'user3': {'Administration': 95, 'Development': 400, 'Testing': 200}}
您还可以使用itertools.groupby:

输出:

{'user1': {'Administration': 100}, 'user2': {'Development': 170, 'Testing': 30}, 'user3': {'Administration': 95, 'Development': 400, 'Testing': 200}}
您还可以使用itertools.groupby:

输出:

{'user1': {'Administration': 100}, 'user2': {'Development': 170, 'Testing': 30}, 'user3': {'Administration': 95, 'Development': 400, 'Testing': 200}}

请显示您的努力我们能看到当前代码吗?请显示您的努力我们能看到当前代码吗?@kuro。谢谢,我没看见that@kuro. 谢谢,我没看到,非常感谢大家!这个解决方案比我尝试的方式简单得多。非常感谢大家!这个解决方案比我尝试的方式简单得多。
{'user2': {'Testing': 30}, 'user3': {'Testing': 200}, 'user1': {'Administration': 100}}
from itertools import groupby as gb
d = [['user1', 'Administration', 100], ['user2', 'Development', 170], ['user2', 'Testing', 30], ['user3', 'Administration', 95], ['user3', 'Development', 400], ['user3', 'Testing', 200]]
result = {a:{c:d for _, c, d in b} for a, b in gb(d, key=lambda x:x[0])}
{'user1': {'Administration': 100}, 'user2': {'Development': 170, 'Testing': 30}, 'user3': {'Administration': 95, 'Development': 400, 'Testing': 200}}