无法解析JSON文件中的TAB
加载似乎包含 字符的JSON文件时,我遇到了解析问题。
当我转到http://jsonlint.com/时,我输入了带有TAB字符的部分:
{ "My_String": "Foo bar. Bar foo."
}
验证者抱怨:
Parse error on line 2:{ "My_String": "Foo bar. Bar foo."
------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
这实际上是有问题的JSON文本的复制/粘贴。
我曾尝试加载该文件,json
并simplejson
没有成功。如何正确加载?我应该只预处理文件并用\t
空格替换TAB 吗?还是我在这里想念的东西?
回答:
这也是一个有问题的示例simplejson
:
foo = '{"My_string": "Foo bar.\t Bar foo."}'simplejson.loads(foo)
JSONDecodeError: Invalid control character '\t' at: line 1 column 24 (char 23)
回答:
从JSON标准:
在任何令牌之前或之后都可以使用无关紧要的空格。空格字符是:字符列表(U + 0009),换行符(U + 000A),回车符(U + 000D)和空格(U
+ 0020)。除令牌中允许使用空格外,任何令牌中都不允许使用空格。
这意味着在JSON字符串中不允许使用文字制表符。您需要将其转义为\t
(在.json文件中):
{"My_string": "Foo bar.\t Bar foo."}
此外,如果在Python字符串文字中提供了json文本,则需要对标签进行两次转义:
foo = '{"My_string": "Foo bar.\\t Bar foo."}' # in a Python source
或使用Python原始字符串文字:
foo = r'{"My_string": "Foo bar.\t Bar foo."}' # in a Python source
以上是 无法解析JSON文件中的TAB 的全部内容, 来源链接: utcz.com/qa/428059.html