You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python字典中添加数组?数据库场景实现求助

问题解决:给Python字典添加包含子字典的数组字段

现有代码与输出

我正在从数据库条目生成Python字典,现有实现代码:

import json

result = []

for row in rows:
    d = dict()
    d['first'] = row[0]
    d['second'] = row[1]

    result.append(json.dumps(d, indent=3, default=str))

当前输出结果:

{'first': 1, 'second': 2 }

需求目标

希望给字典添加数组字段,让输出格式变为:

{'first': 1, 'second': 2, 'third': [{'somekey': row[2]}] }

错误代码问题分析

尝试的代码无法运行,问题出在两处:

import json

result = []

for row in rows:
    d = dict()
    d['first'] = row[0]
    d['second'] = row[1]
    d['third'] = []
    d['third'][somekey] = row[2]  # 错误点
    result.append(json.dumps(d, indent=3, default=str))
  1. 列表只能通过数字索引访问,不能直接用字符串键赋值,会触发TypeError。
  2. somekey作为字段名需要用引号包裹成字符串,否则会被当成未定义变量,触发NameError。

正确解决方案

有两种简洁的实现方式:

方式一:直接赋值包含子字典的列表

import json

result = []

for row in rows:
    d = dict()
    d['first'] = row[0]
    d['second'] = row[1]
    # 直接创建包含目标子字典的列表并赋值
    d['third'] = [{'somekey': row[2]}]
    
    result.append(json.dumps(d, indent=3, default=str))

方式二:分步创建列表与子字典

适合后续需要往third列表中添加更多元素的场景:

import json

result = []

for row in rows:
    d = dict()
    d['first'] = row[0]
    d['second'] = row[1]
    d['third'] = []
    # 创建子字典后追加到列表
    sub_dict = {'somekey': row[2]}
    d['third'].append(sub_dict)
    
    result.append(json.dumps(d, indent=3, default=str))

内容的提问来源于stack exchange,提问作者mrnobody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:39:27