json保存文件乱码

参数 ensure_ascii=False 在使用 Python 的 JSON 库来序列化数据时起到关键的作用,尤其是当数据中含有非 ASCII 字符(如中文、日文、韩文等)的时候。

默认行为 (ensure_ascii=True)

默认情况下(即没有显式设置或设置为 True 时),Python 的 JSON 序列化器会对所有非 ASCII 字符进行转义处理,即将其转换成 Unicode 转义序列形式(形如 \uXXXX)。这意味着原本可以直接阅读的文字会被转化为一系列十六进制数字加上前缀 \u 的形式,对于人类读者来说不易阅读也不直观。

设置效果 (ensure_ascii=False)

当你将参数设置为 ensure_ascii=False 后,JSON 序列化器会直接输出非 ASCII 字符而不进行转义操作。这样一来,如果数据中有中文或其他非英语文字的话,它们将以原样被写入到 JSON 文件中,保持原有的可读性和完整性。

实际影响及应用场景

提高可读性:对于含有大量非 ASCII 字符的数据集而言,使用 ensure_ascii=False 可以显著提升生成 JSON 文件的人类可读性。
减少文件大小:由于省略了转义序列所需的额外字符(如 \u 和四个十六进制数字),使用该参数还可以略微减小 JSON 文件的整体体积。
国际化需求:对于需要在全球范围内共享或处理多语言数据的应用程序而言,这一参数设置有助于维护数据的一致性和本地化特性。
总之,通过简单地将 ensure_ascii 参数设为 False,你可以使 JSON 数据更易于理解和使用,特别是在涉及多种语言和地区的情境下。

with open('tmp.json', 'w', encoding='utf-8') as file:
    json.dump(ret_lis, file, indent=4, ensure_ascii=False)

相关推荐

  1. json保存文件

    2024-07-13 17:22:02       22 阅读
  2. 关于json文件保存

    2024-07-13 17:22:02       29 阅读
  3. Python - json 美化格式、保存文件

    2024-07-13 17:22:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 17:22:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 17:22:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 17:22:02       58 阅读
  4. Python语言-面向对象

    2024-07-13 17:22:02       69 阅读

热门阅读

  1. 神经网络——数据预处理

    2024-07-13 17:22:02       22 阅读
  2. C 标准库 - <stdio.h>

    2024-07-13 17:22:02       20 阅读
  3. 等保2.0对云计算有哪些特定的安全要求?

    2024-07-13 17:22:02       20 阅读
  4. [Spring Boot]Rest服务调用远程Get、Post请求

    2024-07-13 17:22:02       21 阅读
  5. 今日科技圈最新时事新闻(2024年7月12日

    2024-07-13 17:22:02       21 阅读
  6. Leetcode刷题4--- 寻找两个正序数组的中位数 Python

    2024-07-13 17:22:02       21 阅读
  7. 网络安全那些梗

    2024-07-13 17:22:02       20 阅读
  8. lntroducing Machine Learning

    2024-07-13 17:22:02       21 阅读
  9. react学习——29react之useState使用

    2024-07-13 17:22:02       23 阅读