用元组编写列表列表的csv

时间:2013-12-03 15:05:40

标签: python list csv tuples

我有这些数据 -

data = [[(1,2)], [(1,2)], [(1,2)]]

内部列表中的元组是坐标。

我试过这个 -

>>> with open("file.csv", "wb") as afile:
...   writer = csv.writer(afile)
...   writer.writerows(data)

该文件包含此输出 -

"(1, 2)"
"(1, 2)"
"(1, 2)"

我尝试使用此文件读取此文件 -

print [row for row in csv.reader(open("file.csv", "rb"))]

给我[]

内部列表中可能有多个元组 如何将此文件作为csv写入文件,以便另一个python程序可以读取它?

2 个答案:

答案 0 :(得分:1)

也许是这样的?

#!/usr/local/cpython-3.3/bin/python

import csv

data = [[(1,2)], [(1,2)], [(1,2)]]

with open("file.csv", "w") as afile:
    writer = csv.writer(afile)
    for sublist in data:
        writer.writerow(sublist[0])

答案 1 :(得分:1)

我认为这可能就是你想要的。我更改为数据以在其中一个内部列表上具有多个元组,并具有更多唯一值以帮助进行故障排除。重要的一点是,您必须传递writerows()一系列字符串或数字(或者显然是生成此类事物的生成器表达式)。

import csv

data = [[(1,1)], [(1,2), (3,4)], [(1,3)]]

with open("file.csv", "wb") as afile:
    writer = csv.writer(afile)
    writer.writerows((coord for coord in data))

print [row for row in csv.reader(open("file.csv", "rb"))]

输出:

[['(1, 1)'], ['(1, 2)', '(3, 4)'], ['(1, 3)']]