2013-04-28 21 views
16

Ich versuche, meine erste JSON-Datei zu schreiben. Aber aus irgendeinem Grund wird die Datei nicht wirklich geschrieben. Ich weiß, dass es etwas tut, weil nach dem Ausführen von Dumps jeder zufällige Text, den ich in die Datei hineinlege, gelöscht wird, aber an seiner Stelle ist nichts. Unnötig zu sagen, aber die Last Teil wirft und Fehler, weil dort nichts ist. Sollte dies nicht den gesamten JSON-Text zur Datei hinzufügen?Python, JSON in Datei schreiben

from json import dumps, load 
n = [1, 2, 3] 
s = ["a", "b" , "c"] 
x = 0 
y = 0 

with open("text", "r") as file: 
    print(file.readlines()) 
with open("text", "w") as file: 
    dumps({'numbers':n, 'strings':s, 'x':x, 'y':y}, file, indent=4) 
file.close() 

with open("text") as file: 
    result = load(file) 
file.close() 
print (type(result)) 
print (result.keys()) 
print (result) 

Antwort

30

Sie json.dump() Methode verwenden können:

with open("text", "w") as outfile: 
    json.dump({'numbers':n, 'strings':s, 'x':x, 'y':y}, outfile, indent=4) 
9

Wechsel:

dumps({'numbers':n, 'strings':s, 'x':x, 'y':y}, file, indent=4) 

An:

file.write(dumps({'numbers':n, 'strings':s, 'x':x, 'y':y}, file, indent=4)) 

auch:

  • brauchen nicht file.close() zu tun. Wenn Sie with open... verwenden, wird der Handler immer ordnungsgemäß geschlossen.
  • result = load(file) sollte result = file.read()