В файле json , я пытаюсь получить определенное целое число из вложенных списков, добавить к нему другое (фиксированное) целое число и записать измененное целое число обратно в файл json.
Целое число, которое я пытаюсь изменить, находится внутри вложенные списки в json, например:
[head]
-->'Список существ'
------->значение [безымянные несколько записей в этом списке, каждая из которых заключена в в паре фигурных скобок]
------------>'FactionID'
------------------- -->'value:'
Я хочу изменить это целое число 'FactionID' (добавив к нему фиксированное целое число) и записать результат обратно в файл json.< /p>
Есть каталог, полный файлов json, в которых я пытаюсь это сделать.
Мой json выглядит так (я сократил его много, но, надеюсь, его еще можно разобрать):
Код: Выделить всё
`{
"__data_type": "GIT ",
"AreaProperties": {
"__struct_id": 100,
"type": "struct",
"value": {
}
},
"Creature List": {
"type": "list",
"value": [
{
"__struct_id": 4,
"Appearance_Type": {
"type": "word",
"value": 242
},
"FactionID": {
"type": "word",
"value": 2
},
}
}
}
Вот код, с которым я сейчас работаю в целях тестирования:
Код: Выделить всё
for filename in os.listdir(directory):
if filename.endswith('.git.json'):
file_path = os.path.join(directory, filename)
try:
with open(file_path, 'r') as f:
data = json.load(f)
for key, value in data.items():
if key == 'Creature List' and isinstance(value, dict) and 'value' in value:
for creature in value:
if 'FactionID' in creature:
creature['FactionID']['value'] += 46
print(filename)
print(creature)
print(creature['FactionID']['value']
with open(file_path, 'w') as f:
json.dump(data, f, indent=4)
print(f"Modified {filename}")
except (json.JSONDecodeError, FileNotFoundError) as e:
print(f"Error processing {filename}: {e}")
У меня нет большого опыта работы с Python , любая помощь приветствуется. Спасибо
Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-python