我有一个字典,其中包含每个键的两级嵌套列表,如下所示:
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
CODE:
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)
任何帮助将不胜感激!
答案 0 :(得分: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)
答案 1 :(得分:0)
我无法直观地看到record
的外观,因为看起来每个值都应该是嵌套列表,这意味着每列应包含两个列表。如果它实际上是一次只从.values()
写一个值,看起来你会得到一个包含两个列表的列。
无论如何,你应该通过.join()方法寻找你想要达到的目标:
for record in my_dict.values():
writer.writerow(','.join(record))
但问题是,您正在制作CSV(逗号分隔值)文件,因此每个逗号都可以解释为字段分隔符。
问题:您是否考虑过在实例化csv.writer时使用不同的分隔符?