2017-11-14 3 views
0

Ich möchte mein Python-Wörterbuch in eine Textdatei schreiben, in der jede Zeile einen Schlüssel und seinen Wert enthält, mit Komma als Trennung. Ich verwende den folgenden Code ein:Python-Wörterbuch in Textdatei schreiben

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

Aber es gibt mir die folgende Fehlertypeerror: erwartete str, Byte oder os.PathLike Objekt, Liste nicht

+1

Sieht aus wie "Compounds" ist eine Liste. Verwenden Sie stattdessen eine Zeichenfolge. –

+0

Nein, Compounds ist eine Textdatei – StudentOIST

+0

Da ein os.PathLike-Objekt erwartet wird, schlägt dies vor, dass die Ausnahme von open() kommt. Was ist die Art von "Verbindungen"? –

Antwort

0

Es sollte mit dieser Arbeit:

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

Sie können auch dict.items() wie erwähnt verwenden, aber dict.items() gibt eine tuple((key0, value0), (key1, value1) ...) zurück.

auf Ihre Frage zurückkommen, können Sie verwenden:

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

Ich bekomme diesen Fehler erwartet str, Bytes oder os.PathLike Objekt, nicht Liste – StudentOIST

+0

Ich habe den Namen der Datei geändert und jetzt funktioniert es, danke! – StudentOIST

0

Ich hoffe, es wird Ihnen helfen!

1

Das Problem ist, dass Verbindungen, wo Sie es initialisieren, nicht als Dateipfad interpretiert werden können, weil es eine Liste ist. Setzen Sie diese vor diesem Code:

compounds = "my_dict.txt"

Diese Ihr Wörterbuch in einer Datei in das Verzeichnis, in Sie sind schreiben Sie werden das Verzeichnis Sie sich befinden überprüfen können, oder es mit dem os Paket ändern..