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

Python嵌套列表内字典添加键值对报错解决:'list' object is not a mapping

给嵌套列表中的字典添加键值对的问题解决

错误原因

你的代码存在两个问题:

  • 变量名笔误:代码里的char_id应该是定义好的titleID;
  • 核心错误:data的每个元素是子列表(例如[{'title': 'Line'}]),并非字典。当你用zip(titleID, data)配对时,dict_2对应的是子列表,而字典解包语法**只能作用于字典类型,因此抛出'list' object is not a mapping的错误。

正确实现方式

因为data的每个子列表里只有一个字典,我们只需要取出该字典,与titleID中的对应字典合并后,重新包装成子列表即可。

写法一(嵌套遍历)

data = [[{'title': 'Line'}], [{'title': 'asd'}]]
titleID = [{'id': 373}, {'id': 374}]
combine = [
    [{**sub_dict, **id_dict}] 
    for id_dict, sub_list in zip(titleID, data)
    for sub_dict in sub_list
]

写法二(索引取值,更直观)

如果确定每个子列表只有一个元素,可以直接通过索引[0]取出字典:

data = [[{'title': 'Line'}], [{'title': 'asd'}]]
titleID = [{'id': 373}, {'id': 374}]
combine = [
    [{**sub_list[0], **id_dict}] 
    for id_dict, sub_list in zip(titleID, data)
]

执行上述代码后,会得到你期望的输出:

[[{'id': 373, 'title': 'Line'}], [{'id': 374, 'title': 'asd'}]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:20:21