Python как загрузить переменные з файла и убрать переменные в файл

в приложении есть класс с переменными global_variables в нем около 50 важных переменных, что-то вроде настроек программы, как можно эти переменные забирать из JSON файла и убирать их туда?

Чтобы в момент работы программы можно было поменять что-то в JSON файле, и из функции обновить текущие переменные, и соответственно убирать в файл текущее настройки.

Я нашел решение через for и длинный список присваиваний, но может быть есть решение в пару строк кода?


Ответы (1 шт):

Автор решения: Namerek
import json


class global_variable:
    work_dir = ''
    limit_time = 600
    cash_min_time = 300


properties = {
    item: getattr(global_variable, item)
    for item in dir(global_variable) if not item.startswith('__')
}

with open('file.json', 'w', encoding='utf-8') as file:
    json.dump(properties, file,  indent=2)
# -- Сохранили в файл

file.json

{
  "cash_min_time": 300,
  "limit_time": 600,
  "work_dir": ""
}

Читаем

# Мы получили класс с такими значениями
class global_variable:
    work_dir = ''
    limit_time = 400
    cash_min_time = 100

# Теперь Мы читаем значения из файла
with open('file.json', 'r', encoding='utf-8') as file:
     data = json.load(file)

# Присваиваем новые значения
for key, value in data.items():
    setattr(global_variable, key, value)

# Проверяем
print(
    global_variable.limit_time,
    global_variable.cash_min_time,
    sep='\n'
)
# 600
# 300
→ Ссылка