2016-08-17 13 views
-4

ファイルのエクスポートはうまく動作しますが、データのエンコーディングに問題があります。 どこでミスをしましたか?CSVのDjangoエンコーディングの問題

私のコードは

for user in users: 
    result = user[0].encode('utf-8') 
    for x in filter(lambda q: q is not None, user): 
     result += ', ' 
     if type(x) in (str, unicode): 
      result += x.encode('utf-8') 
     else: 
      result += str(x) 
     print type(result), result 
    writer.writerow(result) 

return response 
+1

でそれを使用する方法を学ぶことができるものCSVファイルのエンコーディングのですか?エラーメッセージが表示されますか? – user2393256

+0

「問題があります」と定義します。エラー/トレースバックを取得しましたか?それを示す。 CSVはPython 2ライブラリでUnicodeをうまく扱えないことで有名です。多くの人が 'unicodecsv'を使用しています。 Python 2または3を使用していますか? .... – Dan

+0

いいえ、エクスポートされたファイルに問題があります。私は今のpython 2.7 を使用しています、ファイル内のデータが Имя\tФамилия\tКомментарий\tДатаのように見えますが、\t \t \t \t \t \t – tonyjasta

答えて

0

バイト列を作るためにUnicode文字列に適用されます.encode方法です。あなたのCSVデータがutf-8ではなく、代わりにlatin-1で言うようにエンコードされている場合は、 "トランスコード"が必要です。このような何か:

line.decode('latin-1').encode('utf-8') 

あなたはCSVエンコーディングを知っていれば、その後、どのような入力データのエンコーディングとラテン-1を置き換えるです。あなたがわからない場合

はまた、あなたがchardetを使用することを検討したい場合があり、あなたは正確にあなたの問題は何readthedocs

+0

私は を使用 をконтракта 'writer.writerow (λq:qはNoneではありません)]) ' しかし、このメソッドはすべての値に対して機能しません([x.encode( 'utf-8' – tonyjasta

関連する問題