Неопределенное поведение json

Я написал программу на питоне с использованием json, которая перечисляет каждый position Y, и заменяет значения на 5. Вместо того что бы перечислить все position Y и заменить значение на 5, он просто делает файл пустым, стирает все данные, при чем ошибок компилятор не выдает ошибок

Вот код

import json

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()

file_path = filedialog.askopenfilename(initialdir="/storage/emulated/0/Android/hypper maps/Saves/")
with open(file_path, 'r', encoding='utf-8') as f:
  jn = f.read()
  dt = json.loads(jn)
  
i = 0

whl = True
while whl:
    i+=1
    with open(file_path, 'w', encoding='utf-8') as f:
        dt['props'][i]['position']['y'] = 5
        if i == 200:
            whl=False

Ответы (1 шт):

Автор решения: Phoenix0757

попробуй так

import json
import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()

file_path = filedialog.askopenfilename(initialdir="/storage/emulated/0/Android/hypper maps/Saves/")
with open(file_path, 'r', encoding='utf-8') as f:
    jn = f.read()
    dt = json.loads(jn)

i = 0

whl = True
while whl:
    i+=1
    dt['props'][i]['position']['y'] = 5
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(json.dumps(dt, indent=2)) #эта строка нужна, но её не было
    if i == 200:
        whl=False

→ Ссылка