如何用Python编写csv文件?

如何用Python编写csv文件?,python,csv,Python,Csv,可能重复: 以前我使用它将结果逐行写入文本文件,在每行中,值由tab分隔 fd_out.write("%s\t%d\t%d\t%s\n" % (obj["name"],obj["count"],obj["age"],obj["params"]["country"]) 但是现在我想要CSV输出,我该如何编写代码呢? 就像这样,还是我应该导入CSV并使用其他方法? 对不起,我是个编程新手 fd_out.write("%s,%d,%d,%s\n" % (obj["name"],obj["coun

可能重复:

以前我使用它将结果逐行写入文本文件,在每行中,值由tab分隔

fd_out.write("%s\t%d\t%d\t%s\n" % (obj["name"],obj["count"],obj["age"],obj["params"]["country"])
但是现在我想要CSV输出,我该如何编写代码呢? 就像这样,还是我应该导入CSV并使用其他方法? 对不起,我是个编程新手

fd_out.write("%s,%d,%d,%s\n" % (obj["name"],obj["count"],obj["age"],obj["params"]["country"])
“CSV”不是一个标准,即使“CSV”字面上的意思是“逗号分隔的值”,使用tab作为分隔符与逗号一样常见,如果不是更常见的话。另见维基百科:

为了满足包含分隔符(即制表符或逗号)的CSV字段的需要,通常会引用数据,即使用双引号。没有标准-有时只引用包含分隔符的数据字段。在下面的示例中,所有字段都将被引用

使用csv内置库,您可以很容易地修改输出csv文件的格式

import csv

objs = [{'name': 'knut', 'age': 74, 'count': 13},
        {'name': 'lydia', 'age': 14, 'count': 3}]

with open("/tmp/example.csv", "w") as outfile:
    ## Ordering of the fields in the CSV output
    headers = ['name', 'age', 'count']

    ## although "CSV" stands for "comma separated values", 
    ## it's quite common to use other delimiters i.e. TAB
    ## and still call it "CSV".
    writer = csv.writer(outfile, delimiter="\t", quotechar='"', quoting=csv.QUOTE_ALL)

    ## it's common in CSV to have the headers on the first line
    writer.writerow(headers)

    ## Write out the data
    for obj in objs:
        writer.writerow([obj[key] for key in headers])

此示例还演示了python中的压缩列表操作<代码>[obj[key]用于输入标题]表示“给我输入标题中所有键的obj[key]列表”。

您的代码应该适用于基本数据,但在某些情况下,如果数据中有逗号,可能会出现一些问题

csv
模块处理该问题以及任何类似问题。使用非常简单,您只需执行以下操作:

writer = csv.writer(fd_out)
writer.writerows((obj["name"],obj["count"],obj["age"],obj["params"]["country"]))
注意双参数,我们传递一个元组是因为除了iterable之外,
writerows
。如果您需要更多信息,请随时查看