我已经筛选了很多很多 python/unicode 解释,但我似乎无法理解这一点。
情况如下:
我正在从 reddit 中提取大量评论(制作一个机器人),并希望主要将它们存储在 MongoDB 中,但还需要能够打印出评论树以便手动检查正在发生的事情。
到目前为止,我将评论放入数据库没有任何问题,但是当我尝试打印到标准输出时,CP1252 字符集遇到了它显然不支持的字符的问题。
正如我所读到的,在 Python 3 中,内部的所有内容(字符串)都存储为 Unicode,输入和输出必须是字节,所以这很好 - 我可以将 unicode 编码为 CP1252,在几种情况下我会看到 \ x** 我不介意的字符 - 我猜它们代表超出范围的字符?
问题是我正在使用 \n (换行符)和制表符打印出注释树(到标准输出),因此很容易查看,但显然当您使用换行符转义序列对 unicode 字符串进行编码时,它会将它们转义,因此它们被打印为文字.
以下是我的编码语句供参考:
encoded = post.tree_to_string().encode('cp1252','ignore')
谢谢
编辑:
我想要的是
|Parent Comment
|Child comment 1
|GChild comment 1
|Child comment 2
|Parent Comment 2
我得到的是
b"\n|Parent comment \n\n |Child comment \n\n etc