2024-06-25 05:21:16 发布
网友
以下是测试程序,包括一个汉字:
# -*- 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模块决定转义,而中具有转义符号^{}。
\uXXXX
json
中
顺便说一下:任何一致的JSON解释器都会再次正确地对这个序列进行解压,并返回实际的字符。
将simplejson与上述选项一起使用:
# -*- coding: utf-8 -*- import simplejson as json j = {"d":"中", "e":"a"} json = json.dumps(j, ensure_ascii=False, encoding="utf-8") print json
出局:
{"e": "a", "d": "中"}
在我看来是有效的JSON。如果希望json输出包含非ASCII字符的字符串,则需要传递ensure_ascii=False,然后手动编码。
ensure_ascii=False
你应该读json.org。完整的JSON规范在右边的白色框中。
生成的JSON没有问题。生成器可以生成UTF-8字符串或纯ASCII字符串,其中的字符用} 。
\uXXXX
符号转义。在您的例子中,Pythonjson
模块决定转义,而中
具有转义符号^{顺便说一下:任何一致的JSON解释器都会再次正确地对这个序列进行解压,并返回实际的字符。
将simplejson与上述选项一起使用:
出局:
在我看来是有效的JSON。如果希望
json
输出包含非ASCII字符的字符串,则需要传递ensure_ascii=False
,然后手动编码。相关问题 更多 >
编程相关推荐