无法解析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文本的复制/粘贴。

我曾尝试加载该文件,jsonsimplejson没有成功。如何正确加载?我应该只预处理文件并用\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

回到顶部