簡體   English   中英

在Python 3.x中將多個字典寫入多個csv文件

[英]Writing multiple dictionaries to multiple csv files in Python 3.x

我一直在努力解決這個問題,也許有人可以提供幫助。 我有一個詞典列表。 應將每個字典寫入單獨的.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:...

您的代碼有幾個問題需要先解決。

  1. 變量名不能是整數
  2. 變量a,b,c,d,e,f,g,h都是未定義的。
  3. 傳遞給csv.writer()的參數必須具有write()功能 - 在您的情況下,它應該是File對象。 因此,您應該使用csv.writer(csvfile) ,而不是csv.writer(eachfilename)

您不能將字典分配給整數值。 試試這個:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM