gpt4 book ai didi

Python/Tweepy UnicodeEncodeError

转载 作者:行者123 更新时间:2023-12-01 04:41:52 27 4
gpt4 key购买 nike

我正在尝试使用 Twitter API 和 Python 来浏览 Twitter BIOS。

但是我收到此错误:

newFile.writerow(info)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

我假设当某人的个人资料或屏幕名称中包含表情符号时会发生这种情况,但是以下解决方案似乎都无法阻止该错误:

  • .encode('unicode_escape')
  • .encode('UTF8')
  • .encode('UTF-8')

这是当前代码

for follower in followers.items():
info=[]
name =follower.name.encode('unicode_escape')
screen_name = follower.screen_name.encode('unicode_escape')

userId = userId + 1

#add values to array
values.append(userId)
values.append(name)
values.append(screen_name)

csvFile = open('followers.csv','a')
newFile =csv.writer(csvFile) #imported csv
#add list of headers as a new row
newFile.writerow(info)
#close file
csvFile.close()

最佳答案

一个主要问题是 Python 的 CSV 模块不是 Unicode 安全的 - 请参阅 https://docs.python.org/2/library/csv.html 中的警告

正如您所发现的,解决方法是首先将所有值编码为 UTF-8:

name = follower.name.encode('UTF-8')
screen_name = follower.screen_name.encode('UTF-8')

您现在遇到的问题是 Python 仍在尝试将您的值编码为 ASCII。这是由于您打开文件进行写入的方式造成的。添加b用于二进制写入:

csvFile = open('followers.csv','ab')

完整的形式:

for follower in followers.items():
info=[]
name = follower.name.encode('UTF-8')
screen_name = follower.screen_name.encode('UTF-8')

userId = userId + 1

#add values to array
values.append(userId)
values.append(name)
values.append(screen_name)

csvFile = open('followers.csv','ab')
newFile =csv.writer(csvFile) #imported csv
#add list of headers as a new row
newFile.writerow(info)
#close file
csvFile.close()

关于Python/Tweepy UnicodeEncodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30492084/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com