Чтение json по частям
Скажите пожалуйста, как при помощи python и библиотеки json, читать json файл по частям Вот часть json
{
"map": "Desert",
"props": [
{
"name": "Inflatable_boat",
"uniqueId": 490.497925,
"position": {
"x": -2.94143414,
"y": -4.11158657,
"z": 21.5624847
},
"rotation": {
"x": -0.5243113,
"y": 0.487025142,
"z": -0.484924853,
"w": -0.5027446
},
"isKinematic": true,
"instantiationData": null,
"runtimeData": null
}]
}
Мне нужно что бы при помощи библиотеки json, я нашел значение map, и заменил на свое значение
Ответы (1 шт):
Автор решения: Andrei
→ Ссылка
Можно вот так:
В файле main.json имеется вот такой исходный текст:
{"map": "Desert","props": [{"name": "Inflatable_boat","uniqueId": 490.497925,"position": {"x": -2.94143414,"y":-4.11158657,"z": 21.5624847},"rotation": {"x": -0.5243113,"y": 0.487025142,"z": -0.484924853,"w": -0.5027446},"isKinematic": true,"instantiationData": null,"runtimeData": null}]}
Код:
import json
# Открываем файл main.json на чтение
with open("./main.json", 'r', encoding='utf-8') as f:
jn = f.read() # Читаем содержимое файла main.json в переменную
dt = json.loads(jn) # Преобразовываем JSON в объект Python и сохраняем в переменной
# Открываем файл main.json на запись
with open("./main.json", 'w', encoding='utf-8') as f:
dt['map'] = 'Mytext' # Меняем значение ключа map на требуемое
dt['props'][0]['position']['x'] = 1500
dt['props'][0]['position']['y'] = 1501
dt['props'][0]['position']['z'] = 1502
f.write(json.dumps(dt)) # Преобразовываем объект Python в JSON строку и получившийся результат записываем в файл main.json
В результате получаем следующий текст в файле main.json:
{"map": "Mytext", "props": [{"name": "Inflatable_boat", "uniqueId": 490.497925, "position": {"x": -2.94143414, "y": -4.11158657, "z": 21.5624847}, "rotation": {"x": -0.5243113, "y": 0.487025142, "z": -0.484924853, "w": -0.5027446}, "isKinematic": true, "instantiationData": null, "runtimeData": null}]}