繁体   English   中英

难理解JSON转义字符

[英]Difficulty understanding JSON escape characters

我对编程很陌生,最近深入研究了JSON 转义和 Python 中的特殊字符的主题 我了解如何转义双引号。 例如:

进口 json

data = json.loads('{"Test": "In \\"quotation\\" marks"}')

打印(数据)

返回(作为“字典”): {'测试':'在“引号”标记中'}

但我无法理解其他特殊字符的使用方式,例如: \b、\n、\、\f 等...

有人可以告诉我一些代码示例,这些其他特殊转义字符将在何处以及如何使用,例如,上面的 json.loads 函数。 我将不胜感激。 谢谢

JSON 字符串必须用双引号; 因此,您需要转义双引号才能将其包含在 JSON 字符串中。

但是,您需要转义 Python 字符串文字中的反斜杠,以便在 JSON 值中获得文字反斜杠。 您可以按照问题中的说明进行操作:

'{"Test": "In \\"quotation\\" marks"}'

或者使用原始字符串文字

r'{"Test": "In \"quotation\" marks"}'

造成混淆的部分原因是 JSON 字符串值和 Python 字符串文字看起来完全相同。 例如,由换行符组成的 JSON 字符串看起来像

"\n"

和一个 Python 字符串文字定义一个由换行符组成的字符串看起来像

"\n"

定义包含由换行符组成的 JSON 字符串的字符串的 Python 字符串文字将是

'"\\n"'

或者

r'"\n"'

没关系。 我想到了。 我的问题是当我在做的时候

data = json.loads('{"Test": "引号\\n中"}')

打印(数据)

它会返回: {'Test': 'In quotation \n marks '}我试图理解为什么它显示 \n 而不是实际的新行

我意识到转义只会在您寻找给定键的值时出现。 例如,

打印(数据[“测试”])返回

报价中

分数

同样的事情data = json.loads('{"Test": "In "quotation" \\bmarks"}')

返回 =在引号中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM