2016-06-13 1 views
0

Djangoを使用してCSVデータをダウンロードして保存していますが、テキストが単純な文字列ではなくUnicodeであるときに問題があります。Djangoでユニコード文字でCSVをダウンロードするには

これは私が何をすべきかです:

writer = csv.writer(response) 
writer.writerow(tuple(corresponding_data[btn]["columns"].split(','))) 
for row in rows: 
    writer.writerow(row) 
return response 

は、どのように私はまた、Unicodeテキストを含めることができますか?

EDITED

これは私が取得エラーです:

'ascii' codec can't encode character u'\xe9' in position 1: ordinal not in range(128) 

そして、私はこのしようとした場合:

writer = csv.writer(response, encoding='utf-8') 

を私は 'encoding' のことをエラーが出ますパラメータはこの関数には存在しません。

+1

Python 3では、 'csv.writer'ではなく' open'を使うときに 'encoding'パラメータを使います。 Python 2では、[この回答](http://stackoverflow.com/a/17245651/235698)を参照してください。 –

答えて

1

writer = csv.writer(response) 

を変更する必要があります。

for row in rows: 
     field_1 = row[0] 
     field_2 = row[1].encode(encoding='UTF-8') 
     fields = [field_1, field_2] 
     writer.writerows([fields]) 

説明: 最初のCSVの列には数字が含まれています。エンコード機能は数字に対しては機能しません。だから私は2番目の列だけをエンコードする必要があります。次に、フィールドと呼ばれる新しいリストに値を渡して、それをCSVに書きます。

-2

検索の多くの後、私は次の操作を行って、問題を解決するために管理あなたは

writer = csv.writer(response, encoding='utf-8') 
+0

私はそれを試みましたが、Djangoはエラーをスローし続けます:\t 'encoding'はこの関数のキーワード引数ではありません – user1919

+0

'csv.writer'はPython 2または3のいずれかでエンコードパラメータを取っていません。 –

関連する問題