我知道以前有人问过类似的问题,但到目前为止我无法解决我的问题,所以提前道歉。我有一个带有文本的 json 文件('test.json')。文本显示如下:"... >>\r\n>> This is a test.>\r\n> \r\n-- \r\nMit freundlichen Grü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 ...
添加回答
举报
0/150
提交
取消