У меня есть файл в формате JSON, который:Ошибка при редактировании файла JSON с питоном
{
"DIR": "/home/yabir/code",
"DISK": [
"/home/yabir/back",
"455G",
"8,6G",
"423G",
"2%",
"/home/yabir/back"
],
"FIRST": false,
"last": "13012015_222441",
"last_save": [
"/home/yabir/code/pygame/puzzle.py",
"/home/yabir/code/pygame/memorypuzzle.py",
"/home/yabir/code/pygame/Project",
"A/elementos.xcf",
"/home/yabir/code/clank/src/database.py",
"/home/yabir/code/clank/src/engine.py",
"/home/yabir/code/clank/src/pruebas.py",
"/home/yabir/code/clank/src/.git/hooks/applypatch-msg.sample",
"/home/yabir/code/clank/src/.git/hooks/post-update.sample",
"/home/yabir/code/clank/src/.git/hooks/pre-applypatch.sample",
"/home/yabir/code/clank/src/.git/hooks/pre-rebase.sample",
"/home/yabir/code/clank/src/.git/hooks/commit-msg.sample",
"/home/yabir/code/clank/src/.git/hooks/update.sample",
"/home/yabir/code/clank/src/.git/hooks/pre-commit.sample",
"/home/yabir/code/clank/src/.git/hooks/pre-push.sample",
"/home/yabir/code/clank/src/.git/hooks/prepare-commit-msg.sample",
"/home/yabir/code/clank/src/.git/HEAD",
"/home/yabir/code/clank/src/.git/info/exclude",
"/home/yabir/code/clank/src/.git/config",
"/home/yabir/code/clank/src/.git/description",
"/home/yabir/code/clank/src/xml2json.py",
"/home/yabir/code/clank/src/LICENSE",
"/home/yabir/code/clank/src/main.py",
"/home/yabir/code/clank/src/save.json",
"/home/yabir/code/clank/src/main.pyc",
"/home/yabir/code/clank/src/disks_manager.py",
"/home/yabir/code/clank/src/xml2json.pyc",
"/home/yabir/code/clank/src/structure.py"
]
}
но когда я
data["last_save"] = cmd_decoded
data["last"] = now
json_data.seek(0)
json_data.write(json.dumps(data,sort_keys=True,indent=4, separators=(',', ': ')))
где cmd_decoded это список строк, как в файле JSon раньше " last_save». Он правильно заменяет «последнее» значение, но на данный момент для изменения «last_save» вместо этого python просто добавляет в конец json-файла после окончательного }
. Окончательный resut:
{
"DIR": "/home/yabir/code",
"DISK": [
"/home/yabir/back",
"455G",
"8,6G",
"423G",
"2%",
"/home/yabir/back"
],
"FIRST": false,
"last": "13012015_222512",
"last_save": [
"/home/yabir/code/pygame/puzzle.py",
"/home/yabir/code/pygame/memorypuzzle.py",
"/home/yabir/code/pygame/Project",
"A/elementos.xcf",
"/home/yabir/code/clank/src/database.py",
"/home/yabir/code/clank/src/engine.py",
"/home/yabir/code/clank/src/pruebas.py",
"/home/yabir/code/clank/src/.git/hooks/applypatch-msg.sample",
"/home/yabir/code/clank/src/.git/hooks/post-update.sample",
"/home/yabir/code/clank/src/.git/hooks/pre-applypatch.sample",
"/home/yabir/code/clank/src/.git/hooks/pre-rebase.sample",
"/home/yabir/code/clank/src/.git/hooks/commit-msg.sample",
"/home/yabir/code/clank/src/.git/hooks/update.sample",
"/home/yabir/code/clank/src/.git/hooks/pre-commit.sample",
"/home/yabir/code/clank/src/.git/hooks/pre-push.sample",
"/home/yabir/code/clank/src/.git/hooks/prepare-commit-msg.sample",
"/home/yabir/code/clank/src/.git/HEAD",
"/home/yabir/code/clank/src/.git/info/exclude",
"/home/yabir/code/clank/src/.git/config",
"/home/yabir/code/clank/src/.git/description",
"/home/yabir/code/clank/src/xml2json.py",
"/home/yabir/code/clank/src/save.json",
"/home/yabir/code/clank/src/disks_manager.py",
"/home/yabir/code/clank/src/xml2json.pyc"
]
}/code/clank/src/main.pyc",
"/home/yabir/code/clank/src/disks_manager.py",
"/home/yabir/code/clank/src/xml2json.pyc",
"/home/yabir/code/clank/src/structure.py"
]
}
которым должен быть в «last_save», и «last_save» еще будучи как перед запуском сценария. Почему json-файл не изменяется правильно?
В begginig моего файла у меня есть:
json_data = open('save.json', "r+")
data = json.load(json_data)
И в конце:
json_data.close()
показать код, в котором вы открываете файл, а также пример того, что было сохранено, неясно, что вы имеете в виду. – Anentropic
@ Антенология Отредактировано, просто скажите, нужно ли вам что-нибудь еще –