[英]UnicodeEncodeError: 'ascii' codec can't encode character u'\u2026'
[英]Python Error; UnicodeEncodeError: 'ascii' codec can't encode character u'\u2026'
我试图从包含推文的JSON文件中提取一些数据并将其写入csv。 该文件包含各种字符,我猜这就是为什么我收到此错误消息:
UnicodeEncodeError: 'ascii' codec can't encode character u'\…'
我想在编写csv文件之前我必须将输出转换为utf-8,但我无法做到这一点。 我在stackoverflow上找到了类似的问题,但不是我无法使解决方案适应我的问题(我应该补充说我对python并不熟悉。我是社会科学家,而不是程序员)
import csv
import json
fieldnames = ['id', 'text']
with open('MY_SOURCE_FILE', 'r') as f, open('MY_OUTPUT', 'a') as out:
writer = csv.DictWriter(
out, fieldnames=fieldnames, delimiter=',', quoting=csv.QUOTE_ALL)
for line in f:
tweet = json.loads(line)
user = tweet['user']
output = {
'text': tweet['text'],
'id': tweet['id'],
}
writer.writerow(output)
您只需要将文本编码为utf-8:
for line in f:
tweet = json.loads(line)
user = tweet['user']
output = {
'text': tweet['text'].encode("utf-8"),
'id': tweet['id'],
}
writer.writerow(output)
csv模块不支持在python2中编写unicode:
注意此版本的csv模块不支持Unicode输入。 此外,目前有一些关于ASCII NUL字符的问题。 因此,所有输入应为UTF-8或可打印的ASCII以确保安全; 请参阅示例部分中的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.