如何将python中的字典值列表转换为字符串并写入csv文件的seprate单元格?

如何将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']

我想用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']
   ['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设置为项目,现在它可以工作了,谢谢:)