2013-04-28 130 views
16

我想寫我的第一個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) 

回答

30

您可以使用json.dump()方法:

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

變化:

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