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

Рейтинг: 0Ответов: 1Опубликовано: 05.02.2023

Я написал программу на питоне с использованием 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

Ответы

▲ 0Принят

попробуй так

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