在Python3.x中将多个字典写入多个csv文件

在Python3.x中将多个字典写入多个csv文件,python,python-3.x,csv,dictionary,Python,Python 3.x,Csv,Dictionary,我已经为此挣扎了一段时间,也许有人能帮我。 我有一份字典清单。这些字典中的每一个都应该写入一个单独的.csv文件。我该怎么做 到目前为止,我所拥有的不起作用: from openpyxl import * from openpyxl.styles import * import csv a = 1 b = 2 c = 3 d = 4 e = 5 f = 6 g = 7 h = 8 one = {'A':a,'B':b} two = {'C':c,'D':d} three = {'E':e,'

我已经为此挣扎了一段时间,也许有人能帮我。 我有一份字典清单。这些字典中的每一个都应该写入一个单独的.csv文件。我该怎么做

到目前为止,我所拥有的不起作用:

from openpyxl import *
from openpyxl.styles import *
import csv

a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
g = 7
h = 8

one = {'A':a,'B':b}
two = {'C':c,'D':d}
three = {'E':e,'F':f}
four = {'G':g,'H':h}
list = [one,two,three,four]

def main():
    for eachfilename, eachdict in enumerate(list):
        with open(eachfilename, 'w') as csvfile:
            writer = csv.writer(csvfile)
            for line in eachdict: 
                writer.writerow(line)   

main()
最后,我希望有四个.csv文件,如下所示:

文件1:

A,a
B,b
文件2:

C,c
D,d

文件3:…

不能将字典分配给整数值。试试这个:

import csv
s = [{'A':a,'B':b}, {'C':c,'D':d}, {'E':e,'F':f}, {'G':g,'H':h}]
new_data = [["{},{}".format(a, b) for a, b in i.items()] for i in s]
write = csv.writer(open('filename.csv'))
write.writerows(new_data)

您的代码有几个问题需要首先解决

  • 变量名不能是整数
  • 变量a、b、c、d、e、f、g、h都是未定义的
  • 传递到
    csv.writer()
    的参数必须具有
    write()
    功能-在您的情况下,它应该是一个文件对象。因此,您应该使用
    csv.writer(csvfile)
    ,而不是
    csv.writer(eachfilename)

  • 如果你能解释一下为什么你当前的代码不起作用,那就太好了。顺便问一下,如果你添加一个简单的
    print eachfilename,你会看到什么有用的东西吗(例如,一个文件名和一个字典,这是你下面的代码所假定的),在main中第一个
    for
    循环之后的每个
    ?最小示例的全部思想是,它运行并在这样做时显示您的问题,允许读者理解和再现问题,以帮助您解决问题。