Python json.loads 失败,出现 `ValueError: Invalid control character at: line 1 column 33 (char 33)`

标签 python json

我有一个这样的字符串:

s = u"""{"desc": "\u73cd\u54c1\u7f51-\u5168\u7403\u6f6e\u6d41\u5962\u54c1\u7f51\u7edc\u96f6\u552e\u5546 <br \/>\r\nhttp:\/\/www.zhenpin.com\/ <br \/>\r\n<br \/>\r\n200\u591a\u4e2a\u56fd\u9645\u4e00\u7ebf\u54c1\u724c\uff0c\u9876\u7ea7\u4e70\u624b\u5168\u7403\u91c7\u8d2d\uff0c100%\u6b63\u54c1\u4fdd\u969c\uff0c7\u5929\u65e0\u6761\u2026"}"""

json.loads(s) 返回如下错误信息:

ValueError: Invalid control character at: line 1 column 33 (char 33)

为什么会出现这个错误?我该如何解决这个问题?

最佳答案

也许,另一种选择是使用 strict=False 参数

根据http://docs.python.org/2/library/json.html

"如果 strict 为 False(默认为 True),则字符串中将允许使用控制字符。此上下文中的控制字符是字符代码在 0-31 范围内的字符,包括 '\t'(制表符), '\n'、'\r' 和 '\0'。”

例如:

json.loads(json_str, strict=False)

关于Python json.loads 失败,出现 `ValueError: Invalid control character at: line 1 column 33 (char 33)`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9295439/

相关文章:

python - 匹配模式的正则表达式。一个跳过换行符和字符直到模式。二

python - 谷歌应用引擎 | python | APP.YAML

python - 将 tweepy 与 GitHub 项目捆绑在一起

python - 这是在 Pandas/Python 中更改日期的正确方法吗?

javascript - JSON 解析时抛出错误

javascript - 在JS中记录HTTP请求的字节大小

python - 检测文本页面上的初始/草图

javascript - 从 JSON.stringify 中提取数据

使用 Songkick API JSON.parse() 因意外 token 而失败

json - 使用 resteasy 记录 json 帖子