2013-04-28 15 views
16

Sto provando a scrivere il mio primo file json. Ma per qualche ragione, in realtà non scriverà il file. So che sta facendo qualcosa perché dopo aver eseguito i dump, qualsiasi testo casuale inserito nel file, viene cancellato, ma non c'è nulla al suo posto. Inutile dire che la parte di carico genera ed errore perché non c'è niente lì. Non dovrebbe questo aggiungere tutto il testo json al file?python, scrivendo Json al file

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) 

risposta

30

È possibile utilizzare json.dump() metodo:

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

Cambio:

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

A:

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

anche:

  • non hanno bisogno di fare file.close(). Se si utilizza with open..., il gestore viene sempre chiuso correttamente.
  • result = load(file) dovrebbe essere result = file.read()