![](/img/trans.png)
[英]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.