0

我有一个字典,其中包含每个键的两级嵌套列表,如下所示:

OrderedDict([(0,[['a','b','c','d'],['e','f','g','h']]), (1,[['i','j','k','l'],['m','n','o','p']])])

我想将每个嵌套列表作为列写入 csv:

a,b,c,d      e,f,g,h
i,j,k,l      m,n,o,p

我从当前代码中得到的输出是:

['a','b','c','d']      ['e','f','g','h']
['i','j','k','l']      ['m','n','o','p']

列是正确的,但我想删除括号 [] 和引号 ''

a,b,c,d      e,f,g,h
i,j,k,l      m,n,o,p

代码:

with open('test.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file, quotechar='"', quoting=csv.QUOTE_ALL)
    for record in my_dict.values():
        writer.writerow(record)

任何帮助,将不胜感激!

4

2 回答 2

1

这应该有效:

with open('test.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file, quotechar='"', quoting=csv.QUOTE_ALL)
    for record in my_dict.values():
        final = [",".join(index) for index in record]
        writer.writerow(final)
于 2013-08-08T05:31:21.893 回答
0

我无法可视化您的record外观,因为似乎每个值都应该是一个嵌套列表,这意味着每列都应该包含两个列表。如果它真的一次写入一个值.values(),看起来你会得到一个包含两个列表的列。

无论如何,您想要实现的目标可能应该通过 .join() 方法来寻求:

for record in my_dict.values():
    writer.writerow(','.join(record))

但问题是,您正在制作一个 CSV(逗号分隔值)文件,因此每个逗号都可能被解释为字段分隔符。

问题:您在实例化 csv.writer 时是否考虑过使用不同的分隔符?

于 2013-08-08T05:32:01.787 回答