2017-09-21 19 views
0

我有一個小小的儀表板,可以生成特定計算組的鍵和數量。用戶也可以選擇導出爲CSV文件。導出python列表值以擅長使用半冒號刪除

但是,這是因爲一個計算組具有逗號的鍵。所以我需要把它分號分開,並希望以一種很好的方式打開。

這是目前我的代碼:

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模塊上的文檔,更改分隔符就在那裏。我爲Flask部分添加了另一個重複。 – davidism

回答

1

您可以使用python模塊csv來輕鬆讀取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

我很努力 - 你能告訴我如何修改我給你看的代碼嗎?我沒有寫,但我現在負責它。我嘗試了一些東西,但他們沒有工作。 – ifthenifthen

1

據我所知,這個問題是文件中的電子表格應用程序如何打開。我認爲在Windows上運行的所有應用程序默認情況下都使用雙引號作爲文本分隔符(當然MS Excel和LibreOffice),這樣您可以轉義該字段並使用文件的經典逗號分隔符。例如:"subfield1, subfield2", field2, field3。在Unix上,我還沒有嘗試過,但我相信Unix風格的轉義將起作用:subfield1\,subfield2, field2。我不認爲電子表格應用程序會很好地打開一個沒有通過「文本導入」過程而不用逗號分隔的csv文件。