【发布时间】:2020-08-24 02:02:30
【问题描述】:
在给定的字符串中,我试图替换一个反斜杠,然后是一个双引号,没有任何内容,但似乎没有任何效果。我也尝试过在 SO 上进行搜索,但是虽然有很多用于替换反斜杠和替换引号的解决方案,但我找不到一个可以同时替换两者的解决方案。这里我给出一个示例字符串。
sample_str = '{"source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>", "in_reply_to_status_id": null}'
我想把它修改成如下的字符串-
sample_str = '{"source": "<a href=http://twitter.com/download/iphone rel=nofollow>Twitter for iPhone</a>", "in_reply_to_status_id": null}'
所以我唯一要替换的是引号前面有反斜杠(而不是所有引号,如果我分别删除反斜杠和引号,这是可能的)。
我尝试了以下方法,但似乎都没有工作(也尝试了正则表达式,但没有运气!)。我确定我一定遗漏了一些非常明显的东西。
sample_str = sample_str.replace(r'\"', '')
sample_str = sample_str.replace('\\"', '')
我正在从推文的 JSON 转储中读取这些内容,并尝试将其解码为 JSON。但事实证明,正因为如此,JSON 库无法将其作为 Python 字典读取。我认为这应该由图书馆处理,但它似乎不起作用。因此,任何无需此替换即可为我提供 Python 字典的解决方案对我来说也可以(而且更可取)。
如果我遗漏了一些信息,请告诉我,我会补充。对此的任何帮助将不胜感激。
【问题讨论】:
-
而不是试图解决它 - 你所拥有的是完全有效的 JSON。如果您直接将其输入到源文件中,请确保正确转义它:
a = '{"source": "<a href=\\"http://twitter.com/download/iphone\\" rel=\\"nofollow\\">Twitter for iPhone</a>", "in_reply_to_status_id": null}'与json.loads(a)配合良好。