31

最初の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)
4

2 に答える 2

52

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

with open("text", "w") as outfile:
    json.dump({'numbers':n, 'strings':s, 'x':x, 'y':y}, outfile, indent=4)
于 2013-04-28T21:02:19.270 に答える
10

変化する:

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()
于 2013-04-28T20:59:42.583 に答える