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

如何在Python中格式化JSON并创建格式规范的JSON文件

正确实现Python格式化JSON并生成文件的方法

你的问题出在错误地把换行符\n加到了字典的键里——JSON的键是字符串,这么做只会让键本身包含\n字符,根本起不到格式化换行的作用,而且原代码里的语法还存在错误(比如+'\n'的位置不对,会直接导致语法报错)。

正确的做法是:先正常构建符合目标结构的Python字典,再用json模块的内置方法实现格式化输出,具体步骤如下:

步骤1:正确构建字典结构

按照目标JSON的层级,把数据正常存入Python字典,不要在键或值里加任何换行符:

# 假设name和items是已定义好的变量(items为包含item、quantity、price()属性的对象列表)
order = {"name": name, "items": {}}
a = 1
for i in items:
    # 逐个添加单个商品的三个键值对到items字典中
    order["items"][f'item {a}'] = i.item
    order["items"][f'quantity of item {a}'] = i.quantity
    order["items"][f'price of item{a}'] = i.price()
    a += 1

步骤2:用json模块格式化并写入文件

Python自带的json模块提供了dump()方法,可直接将字典写入文件,同时通过indent参数指定缩进空格数,自动实现换行和层级格式化:

import json

# 以写入模式打开文件,指定编码避免中文乱码
with open("order.json", "w", encoding="utf-8") as f:
    # indent=4表示每个层级缩进4个空格,ensure_ascii=False支持中文(按需启用)
    json.dump(order, f, indent=4, ensure_ascii=False)

如果只是需要获取格式化后的JSON字符串,可使用json.dumps()方法:

formatted_json = json.dumps(order, indent=4, ensure_ascii=False)
print(formatted_json)

这样生成的JSON文件就会和你给出的示例结构一致,自动带有规范的换行和缩进,完全不需要手动添加\n。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:55:17