如何在python中将列表写入CSV?

如何在python中将列表写入CSV?,python,csv,Python,Csv,我有下面的Python列表 [('a1', [('b', 1), ('c', 2), ('d', 3), ('e', 4), ('f', 5), ('g', 6]), ('a2', [('c', 7), ('f', 8), ('g', 9), ('b', 1), ('e', 2), ('d', 3)])] 我想以csv格式将列表保存为以下格式: a1 a2 b 1 c 7 c 2 f 8 d 3 g 9 e 4 b 1 f

我有下面的Python列表

[('a1',
[('b', 1),
 ('c', 2),
 ('d', 3),
 ('e', 4),
 ('f', 5),
 ('g', 6]),

('a2',
[('c', 7),
 ('f', 8),
 ('g', 9),
 ('b', 1),
 ('e', 2),
 ('d', 3)])]
我想以csv格式将列表保存为以下格式:

a1      a2
b  1    c  7
c  2    f  8
d  3    g  9
e  4    b  1
f  5    e  2
g  6    d  3

这应该让你开始:

>>> a = [('b', 1), ('c', 2)]
>>> b = [('c', 7), ('f', 8)]
>>>
>>> for x,y in zip(a,b):
...     k1, v1 = x
...     k2, v2 = y
...     print("{k1} {v1} {k2} {v2}".format(k1=k1, v1=v1, k2=k2, v2=v2))
...
b 1 c 7
c 2 f 8

csv格式非常简单

要开始了解如何实现这一点,只需使用所需的输出创建一个csv文件,并使用任何文本编辑器打开它,您将获得:

a1,,a2,
b,1,c,7
c,2,f,8
d,3,g,9
e,4,b,1
f,5,e,2
g,6,d,3
这是您需要的代码,但至少应该单独获得

input_list = [('a1', [('b', 1), ('c', 2), ('d', 3), ('e', 4), ('f', 5), ('g', 6)]), ('a2', [('c', 7), ('f', 8), ('g', 9), ('b', 1), ('e', 2), ('d', 3)])]

with open("my_file.csv", 'w') as f:
    first_line = [x[0] + ',' for x in input_list]
    f.write(",".join(first_line) + "\n")
    for x,y in zip(input_list[0][1], input_list[1][1]):
         k1, v1 = x
         k2, v2 = y
         f.write("{k1},{v1},{k2},{v2}\n".format(k1=k1, v1=v1, k2=k2, v2=v2))

另一个解决方案是使用。文档中有一些示例。

看看输出是否应该是csv?@Danielle是的,没错,该列表是否存在于一行中?数据中存在语法错误。在
('g',6])、
('d',3)]我的列表格式如下;[('a1',[('b',1),('c',2),('d',3),('e',4),('f',5),('g',6]),('a2',[('c',7),('f',8),('g',9),('b',1),('e',2),('d',3)]]@Technologic27您在问题中的格式不正确。这不是一个合法的python元组列表。使用csv模块可以避免担心转义/引用。@Eddiew,我将编辑我的答案以添加有关csv模块的信息,但我的答案的目的是向OP显示退出很容易,他应该尝试并应该尝试已经考虑了ItoTooCa的解决方案…