【发布时间】:2017-08-17 00:09:56
【问题描述】:
这是我的代码:
import json
a = "\1"
print json.dumps(a)
它返回“\u0001”,而不是所需的“\1”。
有没有办法在通过 json 转储后获得确切的字符。
【问题讨论】:
-
"\1" 不是有效的 json 字符串。你想达到什么目标?
标签: json python-2.7 python-unicode
这是我的代码:
import json
a = "\1"
print json.dumps(a)
它返回“\u0001”,而不是所需的“\1”。
有没有办法在通过 json 转储后获得确切的字符。
【问题讨论】:
标签: json python-2.7 python-unicode
在 Python 中,字符串文字“\1”仅表示字符代码为 1 的一个字符。这里的反斜杠用作 escape to provide the character code as an octal value。
所以要么像这样转义反斜杠:
a = "\\1"
或者使用带有r前缀的原始字符串文字表示法:
a = r"\1"
两者都将分配完全相同的字符串:print a 产生:
\1
json.dumps(a) 的输出将是:
"\\1"
... 和 JSON 格式一样,literal backslash (reverse solidus) needs to be escaped by another backslash。但它真正代表\1。
以下打印True:
print a == json.loads(json.dumps(a))
【讨论】: