2017-10-26 26 views
3

私はこれをしばらくの間苦労しています。誰かが助けてくれるかもしれません。 私は辞書のリストを持っています。これらの各辞書は、別の.csvファイルに書き込まれる必要があります。これはどうすればいいですか?複数の辞書をPython 3.xの複数のcsvファイルに書き込む

動作しません。私はこれまで持っている、:

はFile1:

A,a 
B,b 

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() 

最後に、私はこのように見ている4つの.csvファイルを持っていると思います

File2:

C,c 
D,d 

File3:...

+3

あなたの現在のコードが機能しない理由を説明できればうれしいです。 –

+0

BTW mainの最初の 'for'ループの後に単純な' print eachfilename、eachdict'を追加すると、意味のあるもの(ファイル名と次のコードが想定していると思われる辞書)が表示されますか? – barny

答えて

1

辞書を整数値に割り当てることはできません。これを試してください:

2

まず解決する必要があるコードにはいくつかの問題があります。

  1. 変数名は、
  2. 変数A、B、C、D、E、F、G、Hは、全て未定義である整数であることができません。
  3. csv.writer()に渡す引数は、write()の機能を持っている必要があります。あなたの場合、それはFileオブジェクトである必要があります。したがって、csv.writer(eachfilename)ではなくcsv.writer(csvfile)を使用してください。
+0

はい、ありがとうございます。これらは、私が最小限の例を書いたときに滑り落ちました... – lennart

+1

最小限の例の全体的な考え方は、それが_runs_であり、そうすることで_あなたの問題を示しているので、読者が問題を理解し、 – barny

関連する問題