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

Python 3:多列表转指定结构字典及JSON写入问题求助

解决思路与代码实现

你原来的代码存在几个明显问题:

  1. 变量未定义:代码中写的name, company, color无对应定义,实际应使用你的list1, list3, list2
  2. zip用法错误:dict(zip())要求传入包含键值对的可迭代对象,直接传多个列表不符合语法,需先将三个列表的对应元素分组,再与keys配对生成单个字典
  3. 键名不匹配:你定义的keys里是colours,但目标字典中是color,拼写不一致

正确实现代码

list1 = ["Hulk", "Flash", "Tesla"]
list2 = ["green", "23", "thunder"]
list3 = ["Marvel", "DC_comics", "0.0"]

# 定义与目标字典匹配的键名
keys = ["name", "color", "company"]

# 把三个列表的对应元素分组,逐个与keys配对生成字典
item_list = [dict(zip(keys, group)) for group in zip(list1, list2, list3)]

# 生成最终需要的字典结构
final_dict = {"eo:dict": item_list}

# 验证结果
print(final_dict)

代码说明

  • zip(list1, list2, list3)会将三个列表对应位置的元素打包成元组,比如("Hulk", "green", "Marvel")、("Flash", "23", "DC_comics")
  • 列表推导式遍历每个打包后的元组,通过dict(zip(keys, group))将键与对应值配对成单个字典
  • 最后将所有小字典存入列表,外层包裹成"eo:dict"对应的结构

运行后即可得到你需要的字典,后续可使用json.dump()将该字典写入指定JSON文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:12:55