【问题标题】:How to remove malformatted escaped backslashes from json?如何从 json 中删除格式错误的转义反斜杠?
【发布时间】:2021-03-27 10:50:30
【问题描述】:

给定一个包含大量数组/对象的 json 文件,变量 _json 等于以下内容:

{
   "response":{
      "data":[
         {
            "a":"Foo",
            "b":"Bar",
            "name":"\\\\""John Doe\\\\""",
            "gender":"male"
         }
      ]
   }
}

当我运行json.loads(_json)['response']['data'] 时,python 会引发异常:

json.decoder.JSONDecodeError: Expecting ',' delimiter

在 json 字符串之前放置 r 不起作用,因为似乎 json.loads 仍然会在转义时窒息,因为错误发生在这里 "John Doe\\\\"""。也可能有更多反斜杠的情况。

有没有办法删除这些反斜杠?也许用正则表达式?

我非常感谢任何反馈。谢谢!

【问题讨论】:

  • 感谢@MisterMiyagi 的建议,但遗憾的是,当我从在线资源下载 json 文件时,我无法更改 产生的任何内容 json 数据。

标签: json python-3.x decode


【解决方案1】:

字符串不是有效的 json。在上游修复它。如果你想在这里修补它,那么这应该可以解决问题:

json.loads(_json.replace('\\\\"',''))['response']['data']

【讨论】:

  • 感谢@AllanWind 的回答,但我仍然遇到同样的错误。知道为什么吗?
  • 应该是'\\\\"' 而不是'\\\\""'
  • @user13581602 它对我有用,但按照我的建议进行了调整。
猜你喜欢
  • 2011-10-02
  • 2019-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2018-02-17
  • 1970-01-01
相关资源
最近更新 更多