web-dev-qa-db-fra.com

python, écriture de Json dans un fichier

J'essaie d'écrire mon premier fichier json. Mais pour une raison quelconque, il n'écrira pas réellement le fichier. Je sais que cela fait quelque chose parce qu'après avoir exécuté des vidages, tout texte aléatoire que j'ai mis dans le fichier est effacé, mais il n'y a rien à sa place. Inutile de dire que la partie charge se lance et se trompe car il n'y a rien là. Cela ne devrait-il pas ajouter tout le texte json au fichier?

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

Changement:

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

À:

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

Également:

  • pas besoin de faire file.close(). Si vous utilisez with open..., Le gestionnaire est toujours fermé correctement.
  • result = load(file) doit être result = file.read()
9
Jakub M.