我有一个这样的字符串:
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/