2013-04-28 37 views
16

Tôi đang cố gắng viết tệp json đầu tiên của mình. Nhưng vì lý do nào đó, nó sẽ không thực sự ghi tập tin. Tôi biết nó đang làm một cái gì đó bởi vì sau khi chạy bãi, bất kỳ văn bản ngẫu nhiên tôi đưa vào tập tin, bị xóa, nhưng không có gì ở vị trí của nó. Không cần phải nói nhưng phần tải ném và lỗi vì không có gì ở đó. Điều này có nên thêm tất cả văn bản json vào tệp không?python, viết Json vào tập tin

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) 

Trả lời

30

Bạn có thể sử dụng phương pháp json.dump():

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

Thay đổi:

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

Ngoài ra:

  • không cần phải làm file.close(). Nếu bạn sử dụng with open..., thì trình xử lý luôn được đóng đúng cách.
  • result = load(file) nên result = file.read()
Các vấn đề liên quan