为了账号安全,请及时绑定邮箱和手机立即绑定

从json文件中的字符串中删除标签(\r、\n、<、>)

从json文件中的字符串中删除标签(\r、\n、<、>)

慕尼黑5688855 2021-09-02 14:53:53
我知道以前有人问过类似的问题,但到目前为止我无法解决我的问题,所以提前道歉。我有一个带有文本的 json 文件('test.json')。文本显示如下:"... >>\r\n>> This is a test.>\r\n> \r\n-- \r\nMit freundlichen Gr&uuml;ssen\r\n\r\nMike Klence ..."整体输出应该是纯文本:"... This is a test. Mit freundlichen Grüssen Mike Klence ..."使用 beautifulsoup,我必须删除那些 html 标签。但是那些 >、\r、\n- - 仍然保留在文本中。所以我尝试了以下代码:import codecsfrom bs4 import BeautifulSoupwith codecs.open('test.json', encoding = 'utf-8') as f:    soup = BeautifulSoup(f, 'lxml')    invalid_tags = ['\r', '\n', '<', '>']    for tag in invalid_tags:         for match in soup.find_all(tag):            match.replace_with()print(soup.get_text())但它对文件中的文本没有任何作用。我尝试了不同的变化,但似乎没有任何改变。我怎样才能让我的代码正常工作?或者,如果有另一种更简单或更快的方法,我也会很感激阅读这些方法。顺便说一句,我在 anaconda 上使用 python 3.6。
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

你可以使用 python 内置函数来做到这一点replace()。


with open('test.json', 'r', encoding = 'utf-8') as f:

    content = f.read()

    invalid_tags = ['\\r', '\\n', '<', '>', '-', ';']

    for invalid_tag in invalid_tags:

        content = content.replace(invalid_tag, '')

    content = content.replace('&u', 'ü')


print(content)

输出:


...  This is a test.  Mit freundlichen GrüumlssenMike Klence ...


查看完整回答
反对 回复 2021-09-02
  • 1 回答
  • 0 关注
  • 444 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信