UnicodeEncodePulling tweets时出错charmap无法编码



我正试图从我的时间线中提取推文。但我只能取回其中的一半。它正在抛出charmap编解码器无法对字符u"\u2026"进行编码。字符映射到未定义。我尝试了不同的编码utf-8、ASCII、latin-1和cp1252。但我得到了同样的结果。所以我认为编码没有改变。我应该如何更改编码,以及我应该选择哪种编码来提取推文。我使用的是windows7和python 2.7.8。这是我的代码

import tweepy
import csv 
consumer_key = ''
consumer_secret = ''
access_token = '' 
access_secret = ''
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
data = api.get_user('')
# Open/Create a file to append data
csvFile = open('hollywood.csv', 'a')
#Use csv Writer
csvWriter = csv.writer(csvFile, delimiter=' ')
i = 0
for tweet in tweepy.Cursor(api.user_timeline).items():
    #Write a row to the csv file/ I use encode utf-8
    csvWriter.writerow([tweet.created_at, tweet.text.encode('cp1252')])
    print tweet.created_at, tweet.text
    i+=1
    if i%5 == 0:
        print i
csvFile.close(). 

尝试:

tweet.text.encode('utf8')

UTF-8在这个意义上是防弹的。U+2026不能用Latin1和其他语言编码。

完美工作:

>>> u"u2026".encode('utf8')
'xe2x80xa6'

您需要告诉操作系统在写入文件时使用哪种编码,在本例中为utf8,还需要对提供给编写器的文本进行编码。

尝试

tweet.text.encode('utf-8')
csvFile = open('hollywood.csv', encode = "utf-8", mode = 'a')

相关内容

最新更新