json.dumps() 的输出
2026/8/24 20:47:21 网站建设 项目流程

json.dumps()的输出可能不符合我们的阅读习惯——这时候就需要用到参数来“美化”它。


二、参数 1:ensure_ascii=False

✅ 默认行为(不加这个参数):
json.dumps({"城市": "东京"}) # 输出:{"\u57ce\u5e02": "\u4e1c\u4eac"}

你会看到中文变成了\uXXXX这样的Unicode 转义序列,人眼难以阅读。

这是因为json.dumps()默认只输出 ASCII 字符(即英文字母、数字、基本符号),非 ASCII 字符(如中文、日文、emoji)会被自动转义。

🔧 加上ensure_ascii=False后:
json.dumps({"城市": "东京"}, ensure_ascii=False) # 输出:{"城市": "东京"}

✅ 中文直接显示为可读的汉字!

📌 教师小结:
  • ensure_ascii=True(默认):安全但不可读(适合机器传输)。
  • ensure_ascii=False:保留原始 Unicode 字符(如中文),适合人类阅读和调试
  • 在处理中文、日文等非英文内容时,一定要写ensure_ascii=False

三、参数 2:indent=2

✅ 默认行为(不加这个参数):
json.dumps([{"a": 1}, {"b": 2}]) # 输出:[{"a": 1}, {"b": 2}]

所有内容挤在一行,结构混乱,难以看清嵌套关系。

🔧 加上indent=2后:
json.dumps([{"a": 1}, {"b": 2}], indent=2) # 输出: [ { "a": 1 }, { "b": 2 } ]

✅ 自动换行 + 缩进,层次清晰,像写代码一样美观!

  • indent=2表示每层缩进用 2 个空格
  • 你也可以写indent=4(4 空格)、indent='\t'(制表符)等。
📌 教师小结:
  • indent参数用于格式化输出(pretty-print)
  • 数值越大,缩进越宽;
  • 仅用于调试或展示,正式 API 传输时通常不用(节省带宽)。

四、合起来看

print(json.dumps(final_json, ensure_ascii=False, indent=2))

这行代码的意思是:

“请把final_json这个 Python 对象,转换成一段人类可读的 JSON 字符串

  • 中文不要转成 \u 编码,直接显示汉字;
  • 用 2 个空格缩进,让结构清晰易读;
  • 然后打印出来。”

✅ 举个完整例子

假设final_json是:

[ { "路线方案": "方案 1 (推荐路线)", "风险提示": "该食品运输路线可能经过福岛県" } ]

加上这两个参数后,输出会是:

[ { "路线方案": "方案 1 (推荐路线)", "风险提示": "该食品运输路线可能经过福岛県" } ]

而如果不加,可能会变成:

[{"\u8def\u7ebf\u65b9\u6848": "\u65b9\u6848 1 (\u63a8\u8350\u8def\u7ebf)", "\u98ce\u9669\u63d0\u793a": "\u8be5\u98df\u54c1\u8fd0\u8f93\u8def\u7ebf\u53ef\u80fd\u7ecf\u8fc7\u798f\u5cf6\u770c"}]

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询