Я сейчас читаю в файле JSON, добавляю ключ и записываю его обратно в тот же файл, используя эту процедуру
with open('data.json', 'r+') as f:
data = json.load(f)
temp_key={"test":"val"}
data["test"]["new_key"] = temp_key
f.seek(0) # <--- should reset file position to the beginning.
json.dump(data, f, indent=2)
f.truncate() # remove remaining part
(взято из здесь )
но проблема в том, что он не поддерживает порядок. например, если я читаю:
{
"test": {
"something": "something_else"
},
"abc": {
"what": "huh"
}
}
, вывод получается как:
{
"abc": {
"what": "huh"
},
"test": {
"something": "something_else",
"new_key": {
"test": "val"
}
}
}
Когда я бы хотел, чтобы это было:
{
"test": {
"something": "something_else",
"new_key": {
"test": "val"
}
},
"abc": {
"what": "huh"
}
}
Я понимаю,что JSON является структурой, основанной на ключе / значении, и порядок не имеет значения, но есть ли способ внести изменения и сохранить исходную структуру?