Ich habe ein Wörterbuch und versuche es in eine Datei zu schreiben.
exDict = {1:1, 2:2, 3:3}
with open('file.txt', 'r') as file:
file.write(exDict)
Ich habe dann den Fehler
file.write(exDict)
TypeError: must be str, not dict
Also habe ich diesen Fehler behoben, aber es kam ein weiterer Fehler
exDict = {111:111, 222:222}
with open('file.txt', 'r') as file:
file.write(str(exDict))
Der Fehler:
file.write(str(exDict))
io.UnsupportedOperation: not writable
Ich habe keine Ahnung, was ich tun soll, da ich noch ein Anfänger in Python bin. Wenn jemand weiß, wie das Problem behoben werden kann, geben Sie bitte eine Antwort.
HINWEIS: Ich verwende Python 3, nicht Python 2
=
Zeichen verbunden sind, kann die von mir vorgenommene Bearbeitung den Job erledigen.str(exDict)
produzieren würde, wird nicht immer ein gültiger JSON sein. Ein Grund aus meinem Hinterkopf ist, dass einfache Anführungszeichen in einer JSON-Datei nicht gültig sind, während sie möglicherweise vorhanden sind, wenn wir diestr
Methode verwenden.Ich mache es so in Python 3:
with open('myfile.txt', 'w') as f: print(mydictionary, file=f)
quelle
str(mydict)
in eine Datei zu schreiben , ist genau, dass Sieeval
den Inhalt nicht benötigen , um dasdict
Objekt zurückzubekommen.eval
ist ein Sicherheits-Rosk und sollte nicht verwendet werden, wenn bessere Optionen verfügbar sind.fout = "/your/outfile/here.txt" fo = open(fout, "w") for k, v in yourDictionary.items(): fo.write(str(k) + ' >>> '+ str(v) + '\n\n') fo.close()
quelle
with
Anweisung auch beim Lesen und Schreiben von Dateien verwenden: stackoverflow.com/questions/3012488/…Das Problem mit Ihrem ersten Codeblock war, dass Sie die Datei als 'r' geöffnet haben, obwohl Sie mit schreiben wollten
'w'
with open('/Users/your/path/foo','w') as data: data.write(str(dictionary))
quelle
Wenn Sie ein Wörterbuch möchten, das Sie nach Namen aus einer Datei importieren können, und das Einträge hinzufügt, die gut sortiert sind und Zeichenfolgen enthalten, die Sie beibehalten möchten, können Sie Folgendes versuchen:
data = {'A': 'a', 'B': 'b', } with open('file.py','w') as file: file.write("dictionary_name = { \n") for k in sorted (data.keys()): file.write("'%s':'%s', \n" % (k, data[k])) file.write("}")
Dann zum Importieren:
from file import dictionary_name
quelle
Für Liebhaber des Listenverständnisses werden dadurch alle
key : value
Paare in neuen Zeilen geschriebendog.txt
my_dict = {'foo': [1,2], 'bar':[3,4]} # create list of strings list_of_strings = [ f'{key} : {my_dict[key]}' for key in my_dict ] # write string one by one adding newline with open('dog.txt', 'w') as my_file: [ my_file.write(f'{st}\n') for st in list_of_strings ]
quelle
Ich weiß, dass dies eine alte Frage ist, aber ich dachte auch, eine Lösung zu teilen, die nicht json beinhaltet. Ich persönlich mag json nicht ganz, weil es nicht einfach ist, Daten anzuhängen. Wenn Ihr Ausgangspunkt ein Wörterbuch ist, können Sie es zuerst in einen Datenrahmen konvertieren und dann an Ihre txt-Datei anhängen:
import pandas as pd one_line_dict = exDict = {1:1, 2:2, 3:3} df = pd.DataFrame.from_dict([one_line_dict]) df.to_csv('file.txt', header=False, index=True, mode='a')
Ich hoffe das konnte helfen.
quelle
exDict = {1:1, 2:2, 3:3} with open('file.txt', 'w+') as file: file.write(str(exDict))
quelle
Sie können wie folgt vorgehen:
import json exDict = {1:1, 2:2, 3:3} file.write(json.dumps(exDict))
https://developer.rhino3d.com/guides/rhinopython/python-xml-json/
quelle
import json with open('tokenler.json', 'w') as file: file.write(json.dumps(mydict, ensure_ascii=False))
quelle