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

如何在Python中生成指定JSON结构?用字典时首个书籍数据被覆盖

解决Python生成指定JSON时书籍数据被覆盖的问题

问题出在你对book字段的处理方式上——如果直接给book赋值单个字典,每次赋值都会覆盖之前的内容,自然只会留下最后一条数据。正确的做法是让book对应一个列表,把每本书的字典存入列表中。

方法一:初始化空列表后逐个添加

import json

# 先创建主结构,book字段初始化为空列表
data = {"book": []}

# 把每本书的字典追加到book列表里
data["book"].append({"category": "reference", "author": "Nigel Rees"})
data["book"].append({"category": "fiction", "author": "Evelyn Waugh"})
data["book"].append({"category": "fiction", "author": "J. R. R. Tolkien"})

# 转换为带缩进的JSON字符串
result = json.dumps(data, indent=4)
print(result)

方法二:先定义书籍列表再赋值

import json

# 先整理好所有书籍的列表
book_list = [
    {"category": "reference", "author": "Nigel Rees"},
    {"category": "fiction", "author": "Evelyn Waugh"},
    {"category": "fiction", "author": "J. R. R. Tolkien"}
]

# 把列表赋值给book字段
data = {"book": book_list}

# 生成JSON
result = json.dumps(data, indent=4)
print(result)

两种方法最终都会输出你需要的JSON结构,核心就是用列表存储多个书籍条目,而不是直接用单个字典覆盖book字段的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:35:17