【问题标题】:Json dumps returns "\u0001" for "\1". I need to print the exact characters "\1" after passing to json dumpsJson 转储为“\1”返回“\u0001”。传递给 json 转储后,我需要打印确切的字符“\1”
【发布时间】: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


【解决方案1】:

在 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))

【讨论】:

    猜你喜欢
    • 2018-08-31
    • 2014-03-18
    • 2017-02-03
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 2013-05-16
    相关资源
    最近更新 更多