2017-09-21 10 views
0

特定の計算グループのキーと金額を生成する小さなダッシュボードがあります。ユーザーは、CSVファイルにエクスポートすることもできます。セミコロン区切りを使用してPythonリストの値をエクスポートする

ただし、1つの計算グループにコンマが含まれているキーがあるため、破損しています。ですから、セミコロンを区切りにして、うまくいけばうまく開くようにする必要があります。

これは、現在、私のコードです:

from flask import Flask, render_template, request, make_response, Response 

if 'export' in request.form.getlist('export'): 
     out = [] 
     for k,v in result.items(): 
      out.append(k + ';' + str(v) + '\n') 
     csv = ''.join(out) 
     response = make_response(csv) 
     cd = 'attachment; filename = LCRdrillback.csv' 
     response.headers['Content-Disposition'] = cd 
     response.mimetime='text/csv' 
     return response 

コンマにするために使用するコードブロックでセミコロン。どのようにセミコロンをフレンドリーにするためにこれを微調整する必要がありますか?キーと値が別の列で開きますか?

私はフラスコも使用しています。

+0

もう一つの質問は区切り文字の変更を扱っていません(私は決して最初から設定することはありません)。フラスコを通して物を渡すことは扱いません。いずれにしても、私はこれらのソリューションを私のコードで動作させることができませんでした。 – ifthenifthen

+0

csvモジュールのドキュメントを読んで、デリミタを変更してください。私はフラスコ部分のために別の二重を追加しました。 – davidism

答えて

1

csvファイルを簡単に読み取るために、Pythonモジュールcsvを使用することができます。区切り文字は簡単に設定できます。

読む例:

import csv 
delimiter_type=';' 

with open('file_name.csv', 'rb') as csv_file: 
    spamreader = csv.reader(csv_file, delimiter=delimiter_type, quotechar='|') 

書き込み例:ファイルは、スプレッドシートアプリケーションで開く方法

私が理解したよう
import csv 
delimiter_type=';' 
with open('file_name.csv', 'wb') as csvfile: 
    spamwriter = csv.writer(csvfile, delimiter=delimiter_type, 
          quotechar='|', quoting=csv.QUOTE_MINIMAL) 
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans']) 
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) 
+0

私は非常にn00byです - 私があなたに示したコードをどのように修正するか教えてください。私はそれを書いていないが、私は今それを担当している。私はいくつかのことを試みたが、うまくいかなかった。 – ifthenifthen

1

は、問題があります。私は、Windows上で実行されているすべてのアプリケーションは、デフォルトではテキスト区切り文字(MS ExcelとLibreOffice)を二重引用符で使用しているので、フィールドをエスケープしてファイルのコンマ区切りにすることができると思います。例:"subfield1, subfield2", field2, field3。 Unixでは、私は試していませんが、Unixスタイルのエスケープ機能は動作すると信じています:subfield1\,subfield2, field2。私は、スプレッドシートアプリケーションが「テキストインポート」プロセスを通過せずにコンマで区切られていないcsvファイルをうまく開くとは思わない。

関連する問題