Добавление объекта json python
Подскажите пожалуйста, как мне добавить json объект в файл при помощи python. Вот объект
"name": "CeilingSkylight",
"uniqueId": 14863.6865,
"position": {
"x": -121.896072,
"y": -2.105801,
"z": -0.7743931
},
"rotation": {
"x": 0.9970698,
"y": -1.63123222E-08,
"z": -0.07649757,
"w": 2.05165609E-08
},
"isKinematic": true,
"instantiationData": null,
"runtimeData": null
}
Уточняю: открыть файл, добавить объект json(так что бы другие не удалились), закрыть файл
Ответы (2 шт):
Автор решения: Aleksandr Fetisov
→ Ссылка
используя библиотеку json
import json
data = {
"name": "CeilingSkylight",
"uniqueId": 14863.6865,
"position": {
"x": -121.896072,
"y": -2.105801,
"z": -0.7743931
},
"rotation": {
"x": 0.9970698,
"y": -1.63123222E-08,
"z": -0.07649757,
"w": 2.05165609E-08
},
"isKinematic": True,
"instantiationData": None,
"runtimeData": None
}
json_data = json.dumps(data, indent=4)
print(json_data)
Автор решения: Dmitry
→ Ссылка
В комментариях вам верно указали, что нет возможности добавлять записи в json файл. Вы можете записывать, читать, перезаписывать, добавлять в конец файла, добавлять в определенную строку, но все что описано выше - это работа с текстовыми данными, а не с сущностями json или python.
Верный порядок действий такой:
- открыть и прочитать файл (это будет последовательность символов)
- прочитанную последовательность с помощью json модуля сделать понятным для python словарем
- Изменить нужное значение(-я) в словаре
- Преобразовать словарь в формат json (для python это будет опять последовательность символов, грубо говоря строка)
- Полностью перезаписать файл
import json
# 1, 2
open with("your.json") as f:
json_str = json.load(f)
# 3
json_str["name"] = "new_name"
# 4, 5
open with("your.json", "w") as f:
json.dump(json_str, f)