web-dev-qa-db-ja.com

Python、Jsonをファイルに書き込む

私は最初のjsonファイルを書き込もうとしています。しかし、何らかの理由で、実際にファイルを書き込むことはありません。ダンプを実行した後、ファイルに入れたランダムなテキストは消去されるため、何かをしていることはわかっていますが、その場所には何もありません。言うまでもないが、ロード部分は何も存在しないため、エラーをスローします。これにより、すべてのjsonテキストがファイルに追加されるべきではありませんか?

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

json.dump() メソッドを使用できます:

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

変化する:

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

また:

  • file.close()を実行する必要はありません。 _with open..._を使用する場合、ハンドラーは常に適切に閉じられます。
  • result = load(file)result = file.read()でなければなりません
9
Jakub M.