2017-11-14 20 views
0

私はPython辞書をテキストファイルに書きたいと思います。各行には1つのキーとその値が含まれていて、カンマは区切りです。私は、次のコードを使用しています:Python辞書をテキストファイルに書く

with open(compounds, 'w') as f: 
    for key, value in dict_NTID_IDs_in_EisDatabase.items(): 
     f.write('%s:%s\n' % (key, value)) 

をしかし、それは私に次のエラーTypeError例外を返します:予想STR、バイトまたはos.PathLikeオブジェクトを、これはこれで動作するはず

+1

'compounds'のように見えます。リストです。代わりに文字列を使用してください。 –

+0

いいえ、化合物はテキストファイルです – StudentOIST

+0

os.PathLikeオブジェクトが予想されるので、これはopen()から例外が発生したことを示しています。 「化合物」のタイプは何ですか? –

答えて

0

をリストしていない:

with open(compounds, 'w') as f: 
    for key, value in zip(dict_NTID_IDs_in_EisDatabase.keys(), dict_NTID_IDs_in_EisDatabase.values()): 
     f.write('%s,%s\n' % (key, value)) 

dict.items()をご使用のとおり通知することもできますが、dict.items()tuple((key0, value0), (key1, value1) ...)を返します。

バックあなたの質問に取得するには、使用することができます。

with open(compounds, 'w') as f: 
    for item in dict_NTID_IDs_in_EisDatabase.items(): 
     f.write('%s,%s\n' % (item[0], item[1])) 
+0

このエラーは、str、bytes、またはos.PathLikeオブジェクトであり、リストではありません。 – StudentOIST

+0

ファイルの名前が変更されました。 – StudentOIST

0

私はそれはあなたを助けることを願っています!

dic = {'Python' : '.py', 'C++' : '.cpp', 'Java' : '.java'} 
f = open("dic.txt","w") 
f.write(str(dic)) 
f.close() 
1

問題は、それを初期化する化合物はリストであるためファイルパスとして解釈できないということです。あなたはあなたがしているディレクトリを確認することができます

compounds = "my_dict.txt"

これは、あなたがにしているディレクトリ内のファイルで、あなたの辞書を書き込みます、またはosパッケージでそれを変更します。 そのコードの前にこれを入れてください。

関連する問題