我正在尝试使用 PRAW 获得给定 subreddit 的所有时间的前 25 名:
import praw
subreddit = 'gamedeals'
r = praw.Reddit(user_agent='getting top 25 of all time by /u/sqrg')
submissions = r.get_subreddit(subreddit).get_top_from_all(limit=25)
titlesFile = open("text.txt", 'w')
for s in submissions:
titlesFile.write(s.title.encode('utf-8', 'replace') + '\n')
titlesFile.close()
我收到以下错误:
UnicodeEncodeError:'ascii' 编解码器无法在位置 63 编码字符 u'\xa3':序数不在范围内(128)
所以我将for循环内的行更改为:
titlesFile.write(s.title.encode('utf-8', 'replace') + '\n')
它有效,但在 text.txt 文件中我得到&
的不是&
. 我可以用一些字符串替换函数来改变它们,但是有没有办法直接写正确的标题?另外,为什么我必须使用该encode()
方法?