【发布时间】:2017-12-10 17:03:17
【问题描述】:
我使用 tweepy 将推文的文本存储在使用 Python csv.writer( 的 csv 文件中,但我必须在存储之前将文本编码为 utf-8,否则 tweepy 会抛出一个奇怪的错误。
现在,文本数据是这样存储的:
"b'Lorem Ipsum\xc2\xa0Assignment '"
我尝试使用此代码对此进行解码(其他列中有更多数据,文本在第 3 列):
with open('data.csv','rt',encoding='utf-8') as f:
reader = csv.reader(f,delimiter=',')
for row in reader:
print(row[3])
但是,它不会对文本进行解码。我不能使用.decode('utf-8'),因为csv阅读器将数据读取为字符串,即type(row[3])是'str',我似乎无法将其转换为bytes,数据再次被编码!
如何解码文本数据?
编辑:这是 csv 文件中的示例行:
67783591545656656999,3415844,1450443669.0,b'Virginia School District Closes After Backlash Over Arabic Assignment: The Augusta County school district in\xe2\x80\xa6 | @abcde',52,18
注意:如果解决方案是在编码过程中,请注意我不能再次下载整个数据。
【问题讨论】:
-
如果您在文本编辑器中打开该文件,请至少显示文件中完整的一行。没有您的代码和数据,我们无法重现您的问题。
-
对不起。我添加了一个例子。将该行保存在扩展名为 .csv 的文件中。
-
所以 csv 文件中确实有字符串,这些字符串用
b前缀表示,例如b'Virginia...'? -
导致 CSV 损坏的任何东西都应该修复。
标签: python python-3.x