2016-04-28 12 views
0

私はキーが自分の列であるcsvファイルにロードしたい辞書ファイルを持っています。新しいデータが読み込まれるたびに値が新しい行に追加され続けます。マイコード:pythonがdictデータをcsvファイルにロードする

with open ('master_result.csv','r+b')as csvFile: 
    header = next(csv.reader(csvFile)) 
    dict_writer = csv.DictWriter(csvFile,header, 0) 
    dict_writer.writerow(dict1) 

が、私は問題を見つけることができません

header = next(csv.reader(csvFile) 
StopIteration 

を取得します。

+0

あなたは必ず 'master_resultです。 csv'は空ではありませんか? – alecxe

+2

なぜあなたは同じファイルに読み書きしていますか?プログラムの開始前にファイルには何が入っていますか?それが終わると? –

答えて

0

イテラブル(ファイル)に値がないため、プログラムでStopIterationというエラーが発生しています。

with open ('master_result.csv','r+b') as csvFile: 
    try: 
     # check if the necessary headers exist in your 
     # csvFile already. 
     header = next(csv.reader(csvFile)) 
     dict_writer = csv.DictWriter(csvFile, header) 
     dict_writer.writerow(dict1) 
    except StopIteration: 
     # If the headers don't already exist, 
     # use the keys of Dict1 to establish them. 
     header = dict1.keys() 
     dict_writer = csv.DictWriter(csvFile, header) 
     dict_writer.writeheader() 
     dict_writer.writerow(dict1) 

# 'master_result.csv' output if dict1 = {key1: value1, key2: value2, key3: value3}: 
# key1 key2 key3 
# value1 value2 value3 

ます。また、複数の辞書(辞書の例えば、リスト)を反復処理するforループを使用してwithブロックをラップし、すべて含めることができます:あなたはこの問題に対処することができ

一つの方法は、いくつかのerror handlingが実装することですあなたの出力ファイルの値のそれはちょうど推測だが、私は、これはあなたが何を意味だと思う:。

...と値が新しい行に新しいデータを読み込み、それぞれの時間を追加し続けます

関連する問題