如何将python中的字典值列表转换为字符串并写入csv文件的seprate单元格?
我想用Python在csv文件上编写一个字典。 我希望输出如下:如何将python中的字典值列表转换为字符串并写入csv文件的seprate单元格?,python,csv,dictionary,Python,Csv,Dictionary,我想用Python在csv文件上编写一个字典。 我希望输出如下: key1 key2 4 3 2 1 3 key1 key2 ['4'] ['3'] ['2'] ['1'] ['3'] 但是输出是这样的: key1 key2 4 3 2 1 3 key1 key2 ['4'] ['3']
key1 key2
4 3
2 1
3
key1 key2
['4'] ['3']
['2'] ['1']
['3']
但是输出是这样的:
key1 key2
4 3
2 1
3
key1 key2
['4'] ['3']
['2'] ['1']
['3']
我正在使用以下代码在csv文件上编写字典:
my_file_path = os.path.join(filePath, 'MyDictionary.csv')
with open(my_file_path,'w', newline='') as csv_file:
csv_writer = csv.DictWriter(csv_file, my_data.keys())
csv_writer.writeheader()
csv_writer.writerow(my_data)
我在档案中找不到我的答案。
如何将值列表转换为csv文件上的字符串?试试以下方法:
>>> import csv,os
>>> my_data = {'key1': [4,2,3], 'key2': [3,1]}
>>> filePath='.'
>>> my_file_path = os.path.join(filePath, 'MyDictionary.csv')
>>> with open(my_file_path,'w',, newline = '') as csv_file:
... keys = sorted(my_data.keys()) #ensure key1 is before key2
... csv_writer = csv.writer(csv_file, delimiter=',')
... csv_writer.writerow(keys)
... num_loops = max([len(v) for k,v in my_data.iteritems()])
... for idx in range(0,num_loops):
... row = []
... for k in keys:
... to_append = my_data[k][idx] if len(my_data[k])>idx else ''
... row.append(to_append)
... csv_writer.writerow(row)
输出文件:
key1 key2
4 3
2 1
3
你的字典里储存了什么?你能举一个它的内容的例子吗?我的键盘=['key1','key1','key2'],['key3','key4'],['key4','key4'],['key5']]我的键盘值=['1','2','3','4']它们都是列表,而不是字典。你能在包含的代码片段执行之前显示my_数据的内容吗?我有一个字典,上面有键和值,我调用一个函数将键和值写入csv文件。程序体只调用此函数。自从我建立字典以来,输出就用括号括起来了。我使用以下代码:如果我的字典中没有我的字典术语[列表索引][术语索引]:我的字典.setdefault(我的字典术语[列表索引][术语索引]))。追加(我的字典ID[列表索引])如果我的字典中没有我的字典术语[列表索引][术语索引]:我的字典[我的字典术语[列表索引][术语索引]:我的字典[我的字典术语[列表索引][术语索引]].append(我的文档ID[列表索引])我不知道为什么它不能与iteritems一起使用。我希望输出键和值存储在单独的单元格中。是否要一行键:value1,value2?我想稍后使用csv文件合并键和值,因此任何使合并更容易的输出格式都适合在一行或一列中。我将分隔符='\t'更改为','。现在它可以工作了,但是它在关键行之后插入了一个额外的空行。如何解决这个问题?我更改了:将(我的文件路径“w”)作为csv文件打开(我的文件路径“w”,换行符=“”)作为csv文件打开(我的文件路径“w”),并将iteritems设置为项目,现在它可以工作了,谢谢:)