てきとう

ワーワーゆうとります

日本語のCSVファイルを読み込むよー

前提

  • Excelで出力した日本語入りのCSVファイルを読み込む
  • Formで送られてきたやつをそのまま読み込む
  • 読みこんできたデータをリストにいれてテンプレートに渡してforで表示するよ
def csv_import(request):
 if request.method == 'POST' and request.FILES.has_key('csv_file'):
   csv_file = request.FILES['csv_file']
   files = []
     for row in csv.reader(csv_file):
       for val in row:
         files.append(val.decode('shift_jis'))
 return render_to_response('csv.html',{'files': files})

これであとはおなじみのfor文をテンプレートに。

{% for f in files %}
  {{i}}

{% endfor %}

ちょっと色々端折ってるのでひとつのリストに全部ぶっこんでるけど気にするな。
valは最初str形式なので、デコードかけてやるのがポイントです。Excelから作ったCSVだからshift_jisで。
python文字コード関係は本当に苦手。最初日本語だけ表示されなくて泣きそうになりました。
もう今日はタワレコ寄ってイースタンユース買って帰る。