使用defaultdi生成嵌套dict

2024-10-03 11:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试查询数据库表,并使用dictionary将数据组织成JSON格式

以下是我的数据:

project_package_set = defaultdict(list)

project_package_set = {refresh : [['python1', 'python2', 'python3', 'python4']]}


with connection() as conn:
    curr = conn.cursor()
    for k,v in project_package_set.items():
        for nested in v:
            for p in nested:
                python_details = "SELECT*FROM [dbo].[python_data]"
                curr.execute(python_details)
                c = curr.fetchall()
                for d in c:
                    if d[7] == p:
                        project_package_set[k][d[7]].append(d)

That query shoud return a row like following : 
('python_key_vault', False, 'py', 'dbo', 'activity', True, False, 'python1', True)

这是一个有点复杂的代码,但我想解决的问题是,我试图使以下:

project_package_set = {refresh : 
[[{'python1':['python_key_vault', False, 'py', 'dbo', 'activity', True, False, 'python1', True]},
 'python2',
 'python3',
'python4']]}


因此,我可能在开始时对数据结构犯了一个错误,因为我需要根据列表和dict的成员的条件再次添加ists

它在创建嵌套dict时失败:列表索引必须是整数而不是str

任何帮助,非常感谢


Tags: inprojectfalsetruepackageforconnrefresh