下面是测试程序,包括一个汉字:
# -*- 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"}
为什么这坏了?还是我错了?
您应该阅读json.org。完整的JSON规范在右侧的白框中。
生成的JSON没有错。允许生成器生成UTF-8字符串或纯ASCII字符串,在这些字符串中使用\uXXXX符号转义字符。在您的情况下,Python json模块决定转义,并中使用转义符号\u4e2d。
\uXXXX
json
中
\u4e2d
顺便说一句:任何符合条件的JSON解释器都会再次正确地取消转义此序列,并退还给您实际的字符。