提问者:小点点

使用分号删除[duplicate]将python列表值导出到excel


我在工作中有一个小仪表板,它生成某些计算组的键和数量。用户还可以选择导出到CSV文件。

但是,它正在崩溃,因为一个计算组的键中有逗号。所以我需要把分号去掉,希望能以一种很好的方式打开。

这是我目前的代码:

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 

该代码块中的分号过去是逗号。我需要如何调整它以使其对分号友好?这样就可以打开不同列中的键和值了?

我也在用烧瓶。


共2个答案

匿名用户

可以使用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'])

匿名用户

据我所知,问题是如何在电子表格应用程序中打开文件。我认为在Windows上运行的所有应用程序默认情况下都使用双引号作为文本分隔符(当然是MS Excel和LibreOffice),这样您就可以跳过该字段,并坚持文件的经典逗号分隔符。示例:"subfield d1, subfield d2", field d2, field d3。在Unix上,我没有尝试过,但是我相信Unix风格的转义会起作用:subfield d1\,subfield d2,field d2。我不认为电子表格应用程序会很好地打开一个没有逗号分隔的csv文件,而不通过“文本导入”过程。