Вадимка))), json - это формат текстового представления структур типа "словарь", "список" и их сочетаний. Их удобно использовать для хранения данных, подобных вашим. Но для того, что я сказал в рекомендации, json не обязателен. Хотя и удобен.
Важно другое:
вы неправильно представляете себе работу python с переменными и объектами. Вы представляете себе переменную как кармашек, куда можно положить что-то и оно там будет.
Это не так.
Когда вы импортировали модуль data, в нем исполнилась инструкция: game_map = []
Эта инструкция создала переменную и приравняла ее к пустому списку.
Переменная это скорее как ярлычок, привязанный веревочкой к тому, что вы туда пытались поместить, или к чему пытались переменную приравнять.
В начале скрипт data создал некую переменную game_map. Это - ярлычок где-то в памяти компа. Он привязался к объекту "пустой список", который тоже где-то в памяти компа. Пустой список создался в памяти, когда считался с вашего модуля "data". Ярлычок не привязан к записи в файле, нет. Лишь к отображению в памяти.
Положим, вы говорите python - "эта переменная game_map равна теперь списку циферок".
Это не значит, что вы список циферок положили туда, где раньше лежал пустой список.
Это значит, что ярлычок отвязался от пустого списка в памяти и привязался к другому объекту - списку с циферками. Который, естественно, тоже в памяти.
Никаких операций записи с файлом не происходило, туда ничего не писалось - всё в памяти.
Для записи файл НЕОБХОДИМО явным образом открыть на запись - при этом создастся очень специальный объект в памяти. У этого объекта будет специальный метод write, который сбросит содержимое другого объекта в файл, если этот объект дернуть за этот метод и указать, что сбрасывать в него. Потом файл, открытый на запись, закрываем - и у нас новый файл на диске, с новым содержимым.
У вас в коде этого ничего нет. Всё у вас происходит С ОТОБРАЖЕНИЯМИ в памяти.
Не очень разбираюсь в этих ваших ботах, но судя по документации у pyrogram у класса Message нет атрибута id. Может, я не внимательно смотрел… есть атрибут message.message_id, но это формально всё-таки не совсем то, о чём вы спрашивали.
Вы документацию читали?
i3stone, вы плохо это сделали, нарушив несколько правил ресурса. Рекомендую вам ознакомиться с правилами, исправить вопрос: название вопроса привести в норму, убрать лирику и заменить придуманные вами неаппетитные наборы букв на внятные термины, чтобы отвечающим было комфортно в вашем вопросе.
Также рекомендую спрятать длинную портянку кода под спойлер.
Также рекомендую подумать, чего не хватает отвечающим для ответа - видите, никого нет желающих. Возможно, надо код сократить, оставить только необходимое, и сделать в коде пояснения.
Yrets169, except - это ошибка вообще. Надо ловить не except, а конкретную ошибку, а остальные не ловить. А вы своим try except ловите любую ошибку и не видите, что в ней.
Сделайте хотя бы
Arkadjan, unexpected indent это где-то с отступами сбилось. Проверьте.
Для того, чтобы можно было разобраться более подробно, нужно сделать так, чтобы код можно было запустить. Т.е. вставить в него типовые данные, у меня же нет ваших файлов, из которых данные берутся…
zeni1agent, а вот этого делать было не нужно. В тегах надо упоминать только самое важное. Остальное можно в названии указать или в теле вопроса.
Был бы приведен код на python - ну, тогда ещё как-то понятно.
См.п.3.1
Второй аргумент у index - стартовый элемент, от которого ищем индекс. Вы же номер элемента сдвигаете, ну от него и надо считать, чтобы то что слева не трогать.
glo0m, Основная проблема подавляющего большинства ботописателей в том, что они не читают никакую документацию. Вот и сейчас - вопрос публикует, а правила сервиса не почитаны.