小编典典

Python:json.dumps无法处理utf-8?

json

下面是测试程序,包括一个汉字:

# -*- coding: utf-8 -*-
import json

j = {"d":"中", "e":"a"}
json = json.dumps(j, encoding="utf-8")

print json

以下是结果,请看json.dumps将utf-8转换为原始数字!

{"e": "a", "d": "\u4e2d"}

为什么这坏了?还是我错了?


阅读 278

收藏
2020-07-27

共1个答案

小编典典

您应该阅读json.org。完整的JSON规范在右侧的白框中。

生成的JSON没有错。允许生成器生成UTF-8字符串或纯ASCII字符串,在这些字符串中使用\uXXXX符号转义字符。在您的情况下,Python
json模块决定转义,并使用转义符号\u4e2d

顺便说一句:任何符合条件的JSON解释器都会再次正确地取消转义此序列,并退还给您实际的字符。

2020-07-27