簡體   English   中英

Python錯誤; UnicodeEncodeError:'ascii'編解碼器無法編碼字符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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM