Python,为什么csv writer将引号引起来

Vin*_*inz 3 python csv list

我想将列表保存在csv文件中。问题是当我想重新加载文件时,值是字符串。

当执行我的代码,然后猫“文件名”。输出为:

cat test.csv -> "[1, 2]","[3, 4]","[5, 3]"
Run Code Online (Sandbox Code Playgroud)

我的代码是:

import csv

def save_workschedule():
    small_list = [[1, 2], [3, 4], [5, 3]]
    c = csv.writer(open("test.csv", "w"))
    c.writerow(small_list)

save_workschedule()
Run Code Online (Sandbox Code Playgroud)

如何保存不带引号的列表?

Tim*_*ker 5

在我看来,这有点像XY问题

用引号引起来的原因是您的值包含逗号(一个这样的值是"[1, 2]"),因此CSV编写器必须将它们放在引号中,以将这些逗号与记录分隔符区分开。

解决该问题的一种方法是选择其他分隔符,例如分号。

但是将列表保存在JSON文件中或对其进行腌制可能更有意义。因此,您需要回答的问题是:为什么要使用CSV?

  • @Vinz:CSV非常适合存储表格/文本数据。诸如列表之类的Python对象应以了解此类潜在嵌套结构的格式存储。我更喜欢JSON的可读性-生成的文件可以被人类理解。它们也是便携式的。泡菜文件是二进制的,只能在Python本身中使用。 (3认同)