从 json 字符串中删除嵌套的双引号(Twitter 数据)

Removing nested double quotes from within a json string (Twitter data)

提问人:spankie09 提问时间:3/15/2013 更新时间:3/15/2013 访问量:1445

问:

我在字符串中的嵌套引号中遇到了以下问题:

作为 json 块的一部分,通常有一些字符串本身包含双引号,这是 json 中唯一允许的字符串限制器。我说的是这样的东西(作为摘录,json 块实际上还有更多元素):

{"truncated": false,
"source": "u003Ca href="http: //mobile.twitter.com" rel="nofollow"u003EMobile Webu003C/au003E",
"id_str": "177386775671615488",
"geo": null}

我正在尝试在 Python 中解析这个 json 块。显然,由于“source”值中的额外双引号,json 格式会搞砸。

不幸的是,这些乱七八糟的字符串是 used-entered,所以我不能只是回到源代码并告诉它给我正确的 json 数据。某个真人曾经输入过一个包含双引号的字符串,这个字符串现在在我的 json 数据中显示为用双引号分隔的字符串。数据实际上来自 Twitter API,也许有人遇到过类似的问题或经验。我很难想象 Twitter 允许这样做,或者没有适当的机制来防止其 json 被破坏。

我现在的问题是:如何删除字符串中多余的双引号,以免我的 json 被破坏?我实际上不需要这些字符串中的数据,我需要 json 块的不同部分。因此,如果有一种聪明的方法可以完全删除它们,那将是完美的。不幸的是,额外的双引号出现在各种不同的地方,所以我不能使用某种“仅删除最外层引号”的机制,也不能删除所有双引号,因为在大多数地方,它们是 json 语法的一部分。有没有一种聪明的 RE 方法可以做到这一点?

感谢您的帮助!

python json 字符串 twitter 行情

评论

0赞 Martijn Pieters 3/15/2013
这是无效的 JSON。要使引号有效,需要将引号转义为 。"\"
0赞 Martijn Pieters 3/15/2013
你确定这就是 Twitter API 正在产生的东西吗?我以前从未见过 Twitter 像这样生成不正确的 JSON。
1赞 Martijn Pieters 3/15/2013
我看到你也缺少其他反斜杠。例如,一开始就应该改为。示例中也有字符。不管是什么产生了这个,完全破坏了东西u003C\u003Cu003E
0赞 spankie09 3/15/2013
这确实是 Twitter 数据,但你是对的,看起来“\”似乎在某个地方丢失了。我真的希望这不是它的核心,因为我可能有很多乱七八糟的数据......
0赞 Martijn Pieters 3/15/2013
您如何获得这些数据,也许我们可以帮助解开它?

答: 暂无答案