Python 字符串打印为 [u'String']

标签 python unicode ascii

这肯定是一件容易的事,但它真的让我很烦。

我有一个脚本可以读取网页并使用 Beautiful Soup解析它。我从 soup 中提取所有链接,因为我的最终目标是打印出 link.contents。

我正在解析的所有文本都是 ASCII。我知道 Python 将字符串视为 unicode,我相信这非常方便,只是在我的小脚本中没有用。

每次我打印出一个包含“字符串”的变量时,我都会将 [u'String'] 打印到屏幕上。有没有一种简单的方法可以将它恢复为 ascii 或者我应该编写一个正则表达式来剥离它?

最佳答案

[u'ABC'] 将是 unicode 字符串的单元素列表。 Beautiful Soup always produces Unicode .因此,您需要将列表转换为单个 unicode 字符串,然后将其转换为 ASCII。

我不知道你是如何得到单元素列表的;内容成员将是字符串和标签的列表,这显然不是您所拥有的。假设你真的总是得到一个包含单个元素的列表,并且你的测试真的是 only ASCII 你会使用这个:

 soup[0].encode("ascii")

但是,请仔细检查您的数据是否真的是 ASCII。这是相当罕见的。更有可能是 latin-1 或 utf-8。

 soup[0].encode("latin-1")


 soup[0].encode("utf-8")

或者你问 Beautiful Soup 原来的编码是什么,然后用这个编码取回:

 soup[0].encode(soup.originalEncoding)

关于Python 字符串打印为 [u'String'],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/599625/

相关文章:

php - 使用 PHPMailer 发送邮件时无法在主题中发送表情符号

c - 打印 Ascii 符号

java - 我的循环中将字符解析为 ascii 与比较我已经设置的分配值之间是否存在问题?

java - 相同的正则表达式在 Java 和 Python 中具有不同的结果

python - 如何解决在 Ubuntu 18.04 中安装 PyObjC 的错误

c++ - 使用 Microsoft Access 数据库在 C++ 中进行 Unicode 转换

javascript - 315 vs 315。这些符号的html代码是什么?

python - 有没有可以填充 native Windows 表单字段的 python 模块?

Python 因子水平组合

c++ - MessageBox 从 TCHAR 缓冲区打印额外的 unicode 字符