news 2026/7/1 23:52:25

json.dumps() 的输出

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
json.dumps() 的输出

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"}]
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 17:28:16

创建线程的五种写法

目录 1.继承Thread类,并重写run()方法 2.实现Runnable接口,并重写run()方法 3.使用匿名内部类,继承Thread类,重写run方法 4.使用匿名内部类,实现Runnable接口,重写run()方法 5.使用lambda表达式 1.继承…

作者头像 李华
网站建设 2026/6/30 22:01:05

15、Kubernetes 与 Docker 优化操作系统全解析

Kubernetes 与 Docker 优化操作系统全解析 一、Kubernetes 组件与 API 探索 Kubernetes 有众多组件,相关文件如下: - kube-apiserver.tar - kube-controller-manager - kube-controller-manager.docker_tag - kube-controller-manager.tar - kubectl - kubelet - ku…

作者头像 李华
网站建设 2026/6/30 13:34:22

17、Docker不同操作系统及工具使用指南

Docker不同操作系统及工具使用指南 1. 在AWS上启动Atomic实例以使用Docker 有时候,你可能既不想用Vagrant来尝试Atomic,也不想使用ISO镜像。这时可以在Amazon EC2上启动一个Atomic实例,因为AWS EC2上有可用的Atomic AMI。 具体操作步骤如下: 1. 打开AWS管理控制台,通过…

作者头像 李华
网站建设 2026/6/28 21:29:37

CAGRA:面向GPU优化的高精度图索引技术核心解析

如何理解CAGRA 目前主流的图索引技术主要分为两类:以CAGRA(Milvus中已实现)为代表的迭代式图构建技术,和以Vamana(能力构建中)为代表的插入式图构建技术,两者针对的场景与技术路径存在显著差异,分别适配不同的数据规模与业务需求。 其中,CAGRA是迭代式构建的代表,…

作者头像 李华
网站建设 2026/6/30 19:01:54

(Arxiv-2025)全属性:用于视觉概念个性化的开放词汇属性编码器

全属性:用于视觉概念个性化的开放词汇属性编码器 paper title:Omni-Attribute: Open-vocabulary Attribute Encoder for Visual Concept Personalization paper是snap发布在Arxiv 2025的工作 图 1. Omni-Attribute 是一种开放词汇的图像属性编码器&#…

作者头像 李华
网站建设 2026/6/28 21:15:59

2025年微服务全链路性能瓶颈分析平台对比与最佳实践

核心观点摘要 1. 微服务架构下,全链路性能瓶颈分析成为保障系统稳定与高效的核心需求,行业正由单点测试向全链路、智能化方向演进。 2. 当前主流解决方案包括SaaS化压测平台、开源自建工具链及一体化智能测试平台,各有适用场景与技术权衡…

作者头像 李华