В настоящее время у меня возникают проблемы с попыткой сохранить файл .json и перезагрузить его позже. Кажется, что программа сберегает несколько правильно, но я получаю сообщение об ошибке при попытке перезагрузить его позже. Я не уверен, что я делаю неправильно, и попытался исправить это примерно на 30 минут. Обратите внимание, что я новичок в Python и буду признателен за упрощенные ответы.Проблемы с сохранением json в Python: TypeError: объект 'int' не подлежит индексированию
Это файл json (который никогда не будет прежним).
{"stat.playOneMinute":44,"stat.leaveGame":1,"stat.timeSinceDeath":44,"achievement.exploreAllBiomes":{"value":0,"progress":["ForestHills"]}}
Это ошибка я получаю при попытке перезагрузить JSon файл позже:
Traceback (most recent call last):
File "C:\Users\oiest\Desktop\Code\Minecraft Editor\v1.0.0\MCEditor.py", line 91, in <module>
MainMenu()
File "C:\Users\oiest\Desktop\Code\Minecraft Editor\v1.0.0\MCEditor.py", line 26, in MainMenu
EditWorld()
File "C:\Users\oiest\Desktop\Code\Minecraft Editor\v1.0.0\MCEditor.py", line 51, in EditWorld
EditProcess()
File "C:\Users\oiest\Desktop\Code\Minecraft Editor\v1.0.0\MCEditor.py", line 69, in EditProcess
print('stat.timeSinceDeath is currently ' + str(data['stat.timeSinceDeath']))
TypeError: 'int' object is not subscriptable
Это код, который вызывает ошибку:
with open(stats_path + json_file, "r+") as jsonFile:
data = json.load(jsonFile)
print(data)
print('')
print('What do you wish to edit?')
print('stat.timeSinceDeath')
user_input = input('Edit Stat: ')
if user_input == 'stat.timeSinceDeath':
print('stat.timeSinceDeath is currently ' + str(data['stat.timeSinceDeath']))
print('')
user_input = int(input('New Stat: '))
data['stat.timeSinceDeath'] = user_input
jsonFile.write(json.dumps(data))
jsonFile.seek(0) # rewind
jsonFile.write(json.dumps(data['stat.timeSinceDeath']))
jsonFile.truncate()
print(data['stat.timeSinceDeath'])
Пожалуйста, уменьшите исходную программу до небольшой возможной ** полной ** программы, которая все еще демонстрирует проблему. (Обычно достаточно 10-20 строк.) Скопируйте пасту, которая ** вся ** короткая программа в ваш вопрос. См. [Mcve] и [ask] для получения дополнительной информации. –
@ Robᵩ Я обновил код. – orias
Ваш код еще не заполнен. Пожалуйста, предоставьте краткую, полную программу, которая демонстрирует проблему. –