Задать вопрос
@Yatagarashy

Как сохранять переменные без БД в python?

Делаю телеграмм бота на python, и вот хотел бы вместо бд, сохранить словарь с ключем равным айди человека, а значением, айди сообщения, и чтобы это сохранилось до момента остановления кода (тоесть чтобы я этот словарь мог вызвать везде) Надеюсь понятно объяснил, не стесняйтесь уточнять!
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 3
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
объявите словарь в начале кода, после импортов a = {} а потом наполняйте и читайте его откуда хотите. всё будет в оперативной памяти и по завершению бота - всё удалится. Но учтите что это лучше только для небольших словарей. лучше использовать базу или redis
Ответ написан
Комментировать
@rPman
Не надо избегать баз данных, они решают сразу миллион проблем

Но если у тебя нет многопоточности, маленькие объемы то храни в файлах, сериализуя свои данные чем нравится, например последнее десятилетие люди полюбили json (до этого xml был), читабельно человеком, жмется хорошо, достаточно быстрые сериализаторы, универсально и всеми поддерживаются. При запуске кода читай файл в память, десериализуя, а при изменении данных и/или завершении скрипта сериализуй все и пиши обратно. Одно из развития подхода - пиши не в один файл а во много по объектам, воспринимай файловую систему как key->value базу данных (кстати вполне быструю).

Чуть правильнее - изучи что то типа protobuf, отличная библиотека и идеология, описываешь форматы данных и работаешь с буфером, а код сериализации и десериализации офень эффективно генерируется тулчейном. В простом случае это будет один из способом сериализации данных, но можно допилить подход по хранению множества объектов в одном файле.... нужны очень веские причины чтобы велосипед изобретать.
Ответ написан
Комментировать
@dima20155
you don't choose c++. It chooses you
вы можете сохранять в класс, глобальную переменную, файл, бд, зависит от потребностей
Самый очевидный плюс БД в том, что она будет хранить ваши данные даже если бот будет выключен, перезагрузится.
Если же вам не нужно сохранять данные между перезапусками бота, то храните в любой удобной структуре данных.
Если нужно, то не изобретайте велосипед и исплльзуйте БД.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы