2017-01-02 10 views
1

辞書からテーブルのスクラップされた値を保存しています。それから、私はcsvファイルに行を書いています。私はヘッダーとしてキーを含むcsvファイルに新しい行を書きたい。Python:キーと等しいヘッダの辞書からcsvファイルに繰り返し書き込む

私はこのように、ファイルmydict.csvにデータを書き込みたい:

key1, key2, key3, 
value_a, value_b, value_c 

私が書いた:

import csv 

def dict_to_csv(scraped_values_dict): 

    my_dict = scraped_values_dict 
    with open('mycsvfile.csv', 'wb') as f: 
     w = csv.DictWriter(f, my_dict.keys()) 
     w.writeheader() 
     w.writerow(my_dict) 

このメソッドは、以前の値を上書きします。代わりに、csvファイルのヘッダーをキーとして設定し、各関数呼び出しで新しい値の行を追加したいと思います。私は、ファイルが空の場合にのみヘッダーを書きたいと思う。

key1, key2, key3, 
value_a, value_b, value_c, 
value_d, value_e, value_f 
+1

可能なデュープ:http://stackoverflow.com/questions/2363731/append-new-row-to-old-csv-file-python – Claudiu

+0

2あなたがテーブルを掻き集めて、さらに処理していない場合、パンダのライン。 'df = pd.read_html(url); df.to_csv(ファイル名) 'が完了しました。 – MYGz

+0

ファイルが空の場合にのみヘッダを書きたいので、これは重複しているとは思わない – gtownrower

答えて

3

これが私の仕事:

import csv 

def dict_to_csv(scraped_values_dict): 
    my_dict = scraped_values_dict 
    with open('mycsvfile.csv', 'a') as f: 
     w = csv.DictWriter(f, my_dict.keys()) 
     if f.tell() == 0: 
      w.writeheader() 
      w.writerow(my_dict) 
     else: 
      w.writerow(my_dict) 
関連する問題