[英]How to remove foreign escaped quotes from string? Python
我已经解析了一个 HTML 文件并使用 Beautiful Soup 提取了文本,但是抓取的一些文本可能包含不正确的引号(不同的字体或字符等),因此在我打印到的 JSON 文件中,我看到了转义的引号。 我试图用空字符串替换它们,但由于它们与我从键盘键入的引号不兼容,我不认为它们在我的 replace() 函数中被识别为引号,这意味着替换函数是不工作。 我还尝试通过在要替换的内容前面放一个小“r”来将替换声明为原始字符串,但这没有任何区别。 如何删除转义的引号?
代码:
'tag': div.text.split(',', 1)[0].replace('\n', '').replace('\u00a0', ' ').replace(r'\"', ''), # remove chars ',', ' \n', and '\u00a0',
JSON:
{
"tag": "\"Data Scientists You May Know\" suggester",
"definition": "",
"source": [
{
"title": "Data Scientists You May Know",
"URL": "https://learning.oreilly.com/library/view/data-science-from/9781492041122/ch01.html#RSdata01"
},
{
"title": "Data Scientists You May Know",
"URL": "https://learning.oreilly.com/library/view/data-science-from/9781492041122/ch01.html#idm45635773432952"
}
]
},
如您所见,标签名称是"\\"Data Scientists You May Know\\" suggester"
,而它应该只是"Data Scientists You May Know suggester"
。
因此,有问题的网站呈现如下:
那些花引号指向不同的打开和关闭方式,它们被称为“智能引号”,它们的 UTF-16 十六进制代码是 201C 和 201D。
因此,要删除它们,您可以使用这些代码而不是r'\\"'
:
.replace('\u201c', '').replace('\u201d', '')
但是一般如何解决这样的问题呢?
您可以直接从站点复制文本并将其保存在UTF-16编码的文本文件中。 然后查看文件的二进制内容,例如在 linux/macOS 上使用hexdump
命令,找到字符代码并将它们转换为 Python 字符串,如'\\u\u0026lt;4-character hex unicode sequence>'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.