Задать вопрос
  • Как решить проблему с 'sqlite3.Connection' object has no attribute 'user_exists'?

    @o5a
    судя по наличию
    from db import Database
    у него какой-то класс для работы с базой написан, который наверное и обрабатывает подобные методы.
    Вот только или перепутал, или код изначально скопипастил откуда-то.
  • Почему sqlite запрос выдает пустой список?

    @o5a
    BiStudiOfficial, в названиях идентификаторов используются не кавычки ' а `
    Вокруг gen у Вас как раз кавычки, а они обозначают строку.
    Т.е. вы не значение поля таблицы сравнивали с М, а строку, т.е. получалось условие
    'gen' = 'M'
    В целом обрамлять ` не обязательно, если используются простые латинские названия.
  • Как отучить pymysql ставить кавычки, или есть способы легче?

    @o5a
    Насчет pymysql на 100% не знаю, но обычно в подобных модулях работы с SQL подстановка параметров в принципе не работает для идентификаторов (к ним относятся названия таблиц, полей таблиц), а только для самих данных. Поэтому попытка подставить значения и приводит к синтаксической ошибке.
    Используйте .format() или f-строки, если все-таки надо динамически подставлять имя таблицы.
    Но если такое понадобилось, это уже скорее говорит об ошибке дизайна базы. Как правило не должно быть динамических имен таблиц. Если нужны какие-то динамические признаки, то их делают на уровне полей таблиц, а не самих разных таблиц.
  • Как записать в файл json именно таким образом?

    @o5a
    DF0rig, чтобы это работало в таком виде, нужно:
    1. users.json должен содержать список
    2. для загрузки из файла использовать json.load а не json.loads (он используется для загрузки из строковой переменной)
    3. соблюдать отступы. В приведенном в посте коде они у вас пляшут, но возможно это криво форматировали здесь при вставке.

    Приведенный в посте код не похоже, что реальный, который запускали? В противном случае он бы выдал ошибку, но Вы про нее не упоминаете.
  • Как форматировать .py файл, если в нём есть списки?

    @o5a
    Чтобы подсказать, сначала опишите свою проблему. Изначальную проблему, для которой решили использовать такое форматирование. Какую задачу пытались этим решить?
  • Как правильно разделить большую строку?

    @o5a
    Так определитесь сначала, какой критерий разбиения? По словам, по несколько слов, по буквам и т.п. От этого и будет зависеть реализация.
  • Как проверить наличие строки в файле?

    @o5a
    datareset, основная проблема в том, что открываете на добавление ("a+"). В результате при открытии файла курсор смещается в самый его конец. И последующие операции чтения (f.read() ) читают от курсора до конца файла (т.е. от конца до конца => по факту ничего не читают). Поэтому условие ничего и не находит.
    Как уже предложили, если цель - одновременно и считывать и дописывать, то можно использовать "r+"
    И не забывать при дописывании создавать новую строку (символ '\n'), иначе все эти новые номера слепятся в одну строку.
    И по логике я так понимаю нужно противоположное условие, ведь хотите дописывать, если числа в файле нет.
  • Python, как в sqlite3 привязать одно из полей к имени или ID?

    @o5a
    Alex_Kuzen, в чем именно проблема? В примере вы просто привели какую-то таблицу данных, что там за поля неизвестно, описания полей вашей таблицы не представили. В примере у Вас же и так модель привязана к марке, чего еще требуется?
  • Как вывести все, что находится в базе данных SQLite одним сообщением а не по отдельности Python, Aiogram?

    @o5a
    1. f-строки как раз и существуют, чтобы можно было в одной строке сразу указывать и основной текст и подставлять все нужные переменные. Не нужно их еще отдельно дробить, чтобы потом складывать через +
    "" + f"{ret[0]}" "-" f"{ret[2]}"
    то же самое, что
    f"{ret[0]}-{ret[2]}"
    2. Для склеивания строк есть хороший метод join() - склеивает все элементы списка, разделяя их указанной строкой. В данном случае как раз в качестве разделителя можно использовать символ новой строки - \n
    И не нужно будет никаких дополнительных циклов
    text = '\n'.join(f"{ret[0]}-{ret[2]}" for ret in rows)
  • Как сделать функцию запуска 3 рандомных списков?

    @o5a
    Что значит "запуска рандомных списков"?
  • Рандом фото из вк, как реализовать?

    @o5a
    Артём Смирнов, Если этой картинки еще нет в VK (т.е. внешний url), то ее сначала нужно в vk загрузить перед использованием (можете погуглить, как это делается). Если же эта картинка уже есть в vk, то в attachment насколько помню можно указывать ссылку строкой вида 'photo-123456_123456' (как она называется в самом vk), или же списком таких ссылок.
  • Рандом фото из вк, как реализовать?

    @o5a
    Артём Смирнов, так опять же вопрос: проблема в чем именно?
    Не знаете, как получить фото из альбома? api.photos.getAll или api.photos.get для конкретного альбома
    Не знаете, как их зарандомить? random.choice
  • Как создать логи vk api?

    @o5a
    Больше похоже, что ошибка из другого места кода идет, в отдельности в этом куске кода проблем не должно быть.
  • Рандом фото из вк, как реализовать?

    @o5a
    Артём Смирнов, Попытайтесь прочитать свой вопрос, как будто Вы человек со стороны и совершенно ничего не знаете о своем проекте. Тогда поймете, что вопрос для постороннего выглядит совершенно не понятно: какой-то набор фраз и незаконченных формулировок, причем не понятно, это уже так работает (но нужно по-другому) или же Вы хотите, чтобы так работало.
    Когда сформулируете нормально вопрос, тогда скорее всего и получите полезный ответ.
  • Как получить переменную из любой функции класса?

    @o5a
    geiwoooj, Можно назначать аттрибуты функции, и оно выведет
    class Dialogs:
        def user(self):
            pass
        user.block = "❌Вы заблокированы❌"
    dialogue = Dialogs()
    print(dialogue.user.block)

    Но не понятно, зачем оно нужно именно в таком последовательном виде (т.е. именно функцию user и от нее user.block)
  • Как сделать умный запрос в sqllite на Python?

    @o5a
    WebDiez, чтобы сбросить значение поля на NULL вообще не нужно nullif/coalesce (они как раз нужны были для того, чтобы поле НЕ заменялось, если ничего не передано).
    Если нужно сбрасывать в NULL, то и писать напрямую
    SET user_name = ?
    а в user_name передавать None.
  • Как сделать так чтобы код работал?

    @o5a
    buxoy, message.content и содержит введенное пользователем.
    Только учитывайте, что это текст. Так что если в таблице у вас число, то сравнение
    if receivenumber != lastnumber:
    напрямую не будет работать, нужно привести текст к числу перед сравнением.
  • Как обновить записи в sql?

    @o5a
    Артём Смирнов, лучше приведите реальный код, по крайней мере кусок с выполнением этого update.
    И что именно подразумевается под "сношу админку до 1 ранга"? То, что ставите себе admin=1 ? Значит вы свой uid в update и передаете.
  • Где ошибка в коде?

    @o5a
    Да, это формула перевода градусов в радианы, т.е. должно быть
    alpha = dta * math.pi / 180
  • Выходит ошибка key error, но график строится и ключ есть. Как исправить?

    @o5a
    OperLop, basilevis,
    Правильнее было бы в случае ошибки вывести те данные, при которых она возникает, чтобы разобраться, почему она вообще возникла: это ожидаемое поведение при расчетах или же мы должны поправить сами расчеты?
    Хотя бы простое:
    for i in list(top_5_platforms['platform']):
        try:
            sns.lineplot(data=year_total_sale_for_platform(i, df)['total_sales'], label=i)
            plt.legend()
        except KeyError:
            # выводим текущие значения
            print('Ошибка при', i)
            print(year_total_sale_for_platform(i, df))

    Тогда можно будет увидеть, при каком i возникает такая проблема, и куда в результате работы year_total_sale_for_platform девается ожидаемое значение ключа 'total_sales'.