'key: value' ごとに 1 行ずつ辞書を CSV ファイルに書き込む 質問する

'key: value' ごとに 1 行ずつ辞書を CSV ファイルに書き込む 質問する

辞書を持っています:

mydict = {key1: value_a, key2: value_b, key3: value_c}

次のスタイルで、データを dict.csv ファイルに書き込みます。

key1: value_a
key2: value_b
key3: value_c

私が書いた:

import csv
f = open('dict.csv','wb')
w = csv.DictWriter(f,mydict.keys())
w.writerow(mydict)
f.close()

しかし、今ではすべてのキーが 1 行に、すべての値が次の行にあります。

このようなファイルを書き込むことができたら、それを新しい辞書に読み戻すこともしたいと思います。

コードを説明すると、辞書にはテキスト コントロールとチェックボックス (wxpython を使用) からの値とブール値が含まれています。[設定を保存] ボタンと [設定を読み込む] ボタンを追加したいと思います。設定を保存した場合は、前述の方法で辞書をファイルに書き込み (ユーザーが csv ファイルを直接編集しやすくなるようにするため)、設定を読み込む場合はファイルから読み取り、テキスト コントロールとチェックボックスを更新します。

ベストアンサー1

DictWriter期待通りには動作しません。

with open('dict.csv', 'w') as csv_file:  
    writer = csv.writer(csv_file)
    for key, value in mydict.items():
       writer.writerow([key, value])

読み返すと:

with open('dict.csv') as csv_file:
    reader = csv.reader(csv_file)
    mydict = dict(reader)

これは非常にコンパクトですが、読み取り時に型変換を行う必要がないことを前提としています。

おすすめ記事