如何在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
相关产品推荐
相关产品推荐

