当前位置: 首页 > 面试题库 >

Python json.loads失败,出现“ ValueError:第1行第33列(字符33)处的无效控制字符”

拓拔泉
2023-03-14
问题内容

我有一个像这样的字符串:

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)

为什么会发生此错误?我怎么解决这个问题?


问题答案:

问题是你的unicode字符串包含回车(\r)和换行符(\n
的JSON数据字符串文字。如果它们是字符串本身的一部分,则应适当地对其进行转义。如果它们不是字符串的一部分,那么它们也不应该在您的JSON中。

如果无法解决从哪里获取此JSON字符串以生成有效JSON的情况,则可以删除有问题的字符:

>>> json.loads(s.replace('\r\n', ''))

或手动转义它们:

>>> json.loads(s.replace('\r\n', '\\r\\n'))


 类似资料:
  • 问题内容: 我花了6个小时以上的时间在代码中找到异常或特殊字符,但找不到。我在这里检查了所有类似的消息。 我正在发送带有巨大弹出窗口的表单。首先,我使用内联弹出窗口打开表单,而不是将所有输入发送到main.js进行验证。 所以,我只需要一只第三只眼。 我有:,, 这是代码 形成 JS / AJAX PHP-register.php 错误消息在这里 JSON输出 Chrome控制台: Firefox

  • 问题内容: 我在使用json.loads转换为dict对象时遇到麻烦,我无法弄清楚我在做什么错。我得到的确切错误是 这是我的代码: 我很确定错误发生在第二行到最后一行 但我不知道该如何解决。任何意见,将不胜感激。 问题答案: 将json字符串加载到python中,将python转储到json字符串中,例如: 所以那行是不正确的,因为您正在尝试使用python ,并期望应该有一个有效的。 因此,如果

  •  Nobody really knows what the Bourne shell's grammar is. Evenexamination of the source code is little help. Tom Duff 另一个办法是脚本可以测试是否在变量$-中出现了选项"i". 1 case $- in 2 *i*) # 交互式 shell 3 ;; 4

  • 第 33 章 信号 目录 1. 信号的基本概念 2. 产生信号 2.1. 通过终端按键产生信号 2.2. 调用系统函数向进程发信号 2.3. 由软件条件产生信号 3. 阻塞信号 3.1. 信号在内核中的表示 3.2. 信号集操作函数 3.3. sigprocmask 3.4. sigpending 4. 捕捉信号 4.1. 内核如何实现信号的捕捉 4.2. sigaction 4.3. pause

  • 问题内容: 尝试解码JSON 时出现错误。 我用于API调用的URL在浏览器中可以正常工作,但是通过curl请求完成时会出现此错误。以下是我用于curl请求的代码。 错误发生在 完整回溯: 追溯: 问题答案: 总结评论中的对话: 不需要使用库,Python作为模块包含了相同的库。 无需解码从UTF8到unicode的响应,/ 方法可以本地处理UTF8编码的数据。 有一个非常古老的API。除非您有特

  • 我在尝试使用JsonConverter填充我的列表视图时遇到此异常 com . Google . gson . jsonsyntaxexception:Java . lang . illegalstateexception:应为BEGIN_ARRAY,但在第1行第1列path处为字符串 这是我的JsonConverter类: 这是我的模型类: 我这样称呼它: 不知道我是不是做错了什么