使用Python将列表字典转换为CSV文件
我试图找到像我想要的一样的问题,我没弄明白。我尝试学习列表的Python字典并将其转换为CSV文件。 Tha案就是这样。我试图为一个键创建一个头,我试图创建一个数据作为值。使用Python将列表字典转换为CSV文件
header_column = ["id", "data"]
text = ["1, first", "2, second", "3, thrid"]
for k in header_column:
a = {k:text}
insert = open('sample.csv', 'wb')
insert.write(str(a))
在CSV,我要像:
id data
1 First
2 Second
3 Thrid
为什么你想使用字典?您可以使用csv
模块并直接编写这些列表。
import csv
header_column = ["id", "data"]
text = ["1, first", "2, second", "3, third"]
with open('sample.tsv', 'wb') as f:
writer = csv.writer(f, delimiter='\t')
writer.writerow(header_column)
for l in text:
writer.writerow(l.split(', '))
可正常工作,给
id data
1 first
2 second
3 third
待办事项为Excel明白,你的代码是制表符分隔,您需要将其保存为.tsv
文件。
导入numpy的只是pip -install numpy
import numpy
a = numpy.asarray([ [1,first], [2,second], [3,third] ])
numpy.savetxt("sample.csv", a, delimiter=",")
这是更有效的通过列表迭代,写每一行一行接一行。这可以防止您的字典的创建,从列表的大小加倍内存需求。
我选择不使用csv
模块,只是直接写入文件,因为您正在写入文件的值已经被解析为字符串(除了需要作为字符串连接的头文件) 。
header_column = ...
text = ...
with open('sample.csv', 'wb') as f:
f.write(", ".join(header_column) + '\n')
for row in text:
f.write(row + '\n')
嘿,这很好。但是,头部数据没有显示,并且循环非常多,几乎每个数据都有双倍的数据。 –
适用于我的样本数据。 – Alexander
哦,我的上帝,对不起,真正的文本变量是文本= [“1”,“第一”,“2”,“第二”,“3”,“第三”“]。这个符号(')是否有效? –
我是一个简单的灵魂。没有内在的需要使用先进的技术。
>>> header_column = ["id", "data"]
>>> text = ["1, first", "2, second", "3, thrid"]
>>> with open('sample.csv', 'w') as sample:
... n = sample.write(' '.join(header_column)+'\n')
... for item in text:
... n = sample.write(item.replace(',', '')+'\n')
编辑:对评论的回应有轻微改变的代码。在第二个写入语句中注意额外的.replace("'", '')
。
>>> with open('sample.csv', 'w') as sample:
... n = sample.write(' '.join(header_column)+'\n')
... for item in text:
... n = sample.write(item.replace(',', '').replace("'", '')+'\n')
我试过你的代码,但结果不像我想要的,因为结果是文本varibale它应该被分成两列,id和数据。但全部文本变量只显示在1列中。 –
用问题中提供的数据为我工作。 –
噢,我的上帝,对不起,真正的文本变量是文本= [“1”,“第一”,“2”,“第二”,“3,'第三'”]。这个符号(')是否有效? –
你怎么总是能够如此快地得到答案?就像我开始打字一样,你的打字将会完成:p –
@JoeIddon哈哈对不起。我很擅长触摸打字我猜:p –
我尝试了你的代码,但是当我使用.csv文件时,结果并不是我想要的,但是当我用.tsv文件更改时,它正在工作/但是,为什么.tsv文件?它不能为.csv文件工作? –