@tteqwe

Запись в json файл и обновление python?

Здравствуйте. Пользователь на клиенте выбирает тип подключение TCP или COM. Заполняет поля и отправляет на сервер. На сервере пытаюсь сохранить данные в json-файл. Но что-то не выходит разделить данные, если TCP, то записывать в TCP, если СOM, то в COM. ну и при обновлении информации обновлять данный json.
if request.method == 'POST':
        post_data = request.get_json()
        to_json = {'COM-port':post_data, 'TCP':post_data}
        with open('sw_templates.json', 'w', encoding='utf-8') as f:
            json.dump(to_json, f, sort_keys=False, indent=4, separators=(',', ': '), ensure_ascii=False)

По итогу получается вот что в json.
{
    "COM-port": {
        "type": "com",
        "ports": "com1",
        "speed": "115200",
        "bit": "8",
        "parity": "Нет",
        "stream": "Нет",
        "stop_bit": "Один",
        "timeout": "1000"
    },
    "TCP": {
        "type": "com",
        "ports": "com1",
        "speed": "115200",
        "bit": "8",
        "parity": "Нет",
        "stream": "Нет",
        "stop_bit": "Один",
        "timeout": "1000"
    }
}

Может быть кто-то сталкивался с подобной задачей. Заранее спасибо.
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
laviol
@laviol
Кодер-разнорабочий
Ну, вполне логичное поведение, учитывая, что Вы никак не разделяете запись, а тупо пишете post_data в качестве значения и в ключ 'COM-port', и в ключ 'TCP'.
Для того, чтобы разделить запись, следует проверять значение post_data['type'], и в зависимости от того, что там, записывать в качестве значения соответствующего ключа в итоговом конфиге.
Что-то аля:
post_data = request.get_json()
if post_data['type'] == 'com':
    to_json = {'COM-port': post_data}
elif post_data['type'] == 'tcp':
    to_json = {'TCP': post_data}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы