Задать вопрос
  • Как исправить AttributeError: 'NoneType' object has no attribute 'find_all'?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    1. Нужно приводить сообщение об ошибке полностью. Всё целиком что пишется в терминал. Там исчерпывающая информация о том, что конкретно и где пошло не так.
    2. Если вы не способны читать сообщения об ошибках, то вам надо учиться на более простых примерах. Сейчас же ваша проблема выглядит так, что вы совершенно не умея программировать и не зная основ пытаетесь с помощью данного ресурса решить свою какую-то задачу.
    3. У вас в коде только два места. где происходит вызов метода find_all. В котором конкретно ваша проблема указано в подробном сообщении об ошибке, которое вы не потрудились привести.
    4. 'NoneType' object has no attribute 'find_all' означает, что вы пытаетесь вызвать метод у объекта, у которого нет этого метода. Видно даже у какого объекта - у Null.
    5. Если вам этих намёков не достаточно, то вам следует взять учебник по питону и начинать учиться с простого. Или обратитесь к фрилансерам за помощью.
    Ответ написан
    Комментировать
  • Как отправить команду в Telegram чтобы он закрылся?

    Нет.
    Ответ написан
    Комментировать
  • Что нужно знать junior php backend разработчику?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Что нужно знать junior php backend разработчику?

    То, что указано у заказчика в ТЗ или в вакансии.
    Всем найденным ответам на этом ресурсе - больше 3 лет, возможно уже ситуация заметно изменилась.

    Не изменилась.
    помогите пожалуйста сориентироваться и понять с чего начать и в каком порядке изучать.

    С формулирования более конкретных вопросов.
    Ответ написан
    Комментировать
  • Что делать если про скачивании aiogram, выходить данная команда?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Что делать если про скачивании aiogram, выходить данная команда?

    error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-buil...

    Наверное стоит прочитать ошибку?

    На винде отсутствует Microsoft Visual C++, качать здесь https://visualstudio.microsoft.com/ru/visual-cpp-b....
    Ответ написан
    5 комментариев
  • Не правильная проверка ячейки таблицы через цикл, почему не записывается переменная?

    Vindicar
    @Vindicar
    RTFM!
    Ты уверен? Как насчёт явно задать порядок выборки нужных тебе столбцов в select?
    Что-то в духе SELECT id, name, chat_id FROM users. Названия столбцов укажи свои, и только используемые в данном коде.

    Далее, с БД так не работают. Ты выбираешь все строки, а потом вручную ищешь совпадение - это глупо.
    Лучше попроси БД найти нужные тебе строки.
    cur.execute('SELECT id, name FROM users WHERE chat_id = ?', (call.message.chat.id,))


    К слову, что ты подразумеваешь с под "третья"? Индекс 3? Или "третья с начала" (индекс 2)?
    Ответ написан
    Комментировать
  • Как ответить на сообщение в боте телеграма спустя сутки(aiogram 2.5.2)?

    @nozzy
    Symfony, Laravel, SQL, Python, Telegram
    Ты все правильно придумал, без sleep здесь никак не обойтись, сделай так (псевдокод):
    bot.sendMessage('Message 1');
    //ждем день (86400 секунд)
    sleep(60*60*24); 
    bot.sendMessage('Message 2');
    //ждем еще день
    sleep(60*60*24); 
    bot.sendMessage('Message 3');

    Не благодари.
    Ответ написан
    4 комментария
  • Почему возникает ошибка AttributeError: 'NoneType' object has no attribute 'write'?

    @Dementor
    программист, архитектор, аналитик
    1. При чем тут Java?
    2. Зачем тут HTML и CSS?
    3. На днях тоже при отладке питоновского скрипта получил ошибку AttributeError: 'NoneType' object has no attribute - не поверишь, у меня функция вместо нужного объекта возвращала NoneType и у него естественно не было никаких атрибутов, что при попытке обратится к ним вызывало ошибку. Помогает проверка типа или Try-Except

    Загуглил, что eel - это электрон. Тогда с описания ошибки очевидно, что при запуске в пайчарме (или где там отлаживаете) скрипт и веб-файлы находятся в одной директории, а после компиляции он их не видит, что говорит о разних рабочих директориях. Или передавайте на вход исполняемому файлу рабочую директорию, или указывайте полный путь, а не "????/main.html"
    Ответ написан
    2 комментария
  • Как правильно хранить изображения в SQL и как правильно работать с ними в WPF проекте?

    Идеальное решение без лишних рассуждений

    Картинки - в S3, а перед S3 поставить CDN, чтобы сильно S3 не нагружать.
    В центральную базу данных на сервере - только идентификаторы картинок.

    Клиент (на WPF) будет обращаться к какому-то приложению, которое написано на ASP NET Core, а оно, в свою очередь, будет идти в центральную БД за всякой инфой.

    Опционально - клиент будет идти в CDN за картинками.
    Сами картинки потом пусть кэшируются в ФС, чтобы не нужно было идти за ними повторно.
    Данные о модах тоже можно кэшировать, но уже в sqlite - это полезно будет, пока нет интернета, или пока актуальный список модов загружается.



    Да, единственный хороший вариант хранить картинки в базе - это не хранить картинки в базе, а хранить лишь пути или идентификаторы картинок.

    Главный минус картинок в ФС - это то что они будут привязаны к одному серверу. Лучше хранить картинки в другой системе (S3 или CDN) и хранить в базе их идентификаторы, чтобы потом клиент мог сам их скачать, если это необходимо. Так раздача картинок не будет привязана к основному серверу.

    А клиент пусть их кэширует также у себя на диске.

    В будущем я хотел бы попробовать сделать так, чтобы база была на каком-то сервере, чтобы многие могли пользоваться приложением, но не думаю, что это будет нормально работать, да и вообще не красиво( Заранее спасибо.

    Если ты хочешь, чтобы разные пользователи имели доступ к единой базе модов, то действительно надо сделать какой-то сервер.

    Ну и клиент на WPF не должен напрямую подключаться к MS SQL.
    MS SQL должен находится где-то на сервере и спрятан за каким-то другим web-сервером (который будет написан с использованием ASP NET Core например), который будет уже отвечать за всякую логику.
    Если тебе нужна локальная база данных на клиенте (для кэша например), то лучше использовать sqlite.
    Ответ написан
    2 комментария
  • Как в цикле For передать два значенния?

    @Everything_is_bad
    zip, но лучше начать читать учебник, если такое в ступор вводит.
    Ответ написан
    Комментировать
  • Насколько приемлема такая проверка на четность (делимость) в Python?

    febday
    @febday
    if a % 2:
    Это тоже самое, что и
    if a % 2 == 1:
    Ну или это
    if a % 2 != 0:

    Поскольку 1 в булево значениях это True, а первый вид условия отвечает всегда на True, как и другие в принципе

    Поэтому решать лишь вам как записывать. В любом из вариантов это читабельно
    Ответ написан
    Комментировать
  • Как исправить проблему импорта библиотеки python-valve?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Библиотека valve поддерживает максимум python 3.7, у вас 3.12. Библиотека не обновлялась около 4 лет. Закопайте стюардессу.
    Ответ написан
    Комментировать
  • Какая сфера в IT/яп лучше подходят для работы параллельно с учебой?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если стоит задача именно зарабатывать, то единственный сейчас для студента выход - это партайм в общепите, торговле или доставке. Работу по специальности найти практически невозможно. Редких счастливчиков с выдающимися качествами возьмут на бесплатную стажировку.
    Ответ написан
    2 комментария
  • Парсинг id аккаунтов сайта циклом?

    @maksam07
    Можно ли

    Можно. Все что видно в браузере - можно. А иногда и немного того, что не видно.
    Ответ написан
    Комментировать
  • При команде `!mine` алмазы 0, как исправить?

    Vindicar
    @Vindicar
    RTFM!
    Рекомендую выучить язык, прежде чем писать ботов.
    Посмотри на свой код (выделено мной):

    elif user_data[5] == '<:939223290105454632:1164940159050059786>':
    ...
    elif user_data[5] == '<:939195860317773856:1164153649296048148>':
    ...
    elif user_data[5] == '<:939223290105454632:1164940159050059786>': # Добавлено условие для железной кирки
    ...

    У тебя уже есть условие для железной кирки. Оно отработает первым, и в дальнейшие ветки elif управление просто не перейдёт. Более простой пример, иллюстрирующий твою ошибку:
    x = 1
    
    if x == 0:
      print('Ноль!')
    elif x == 1:
      print('Один!')
    elif x == 2:
      print('Два!')
    elif x == 1:
      print('Раз!')

    Код выведет "Один!" а не "Раз!".
    Единственный способ добиться нужного поведения - исправить уже существующую ветку.
    x = 1
    
    if x == 0:
      print('Ноль!')
    elif x == 1:
      print('Раз!')
    elif x == 2:
      print('Два!')


    В коде вообще много спорных решений, но про них лучше отдельно поговорить.
    Ответ написан
    1 комментарий
  • Постоянно вылазит ошибка NoneType:None в чём дело?

    Vindicar
    @Vindicar
    RTFM!
    А что, по твоему, ты пытаешься сделать?
    Эта функция выводит информацию о текущем обрабатываемом исключении. А у тебя в коде исключения не выбрасываются.
    По факту, эту функцию имеет смысл использовать только когда обрабатываешь исключение, т.е. внутри блока except.
    Ответ написан
    Комментировать
  • Куда развиваться верстальщику?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    сложилось ощущение, что web заканчивается на вёрстке лендингов и создании интернет-магазинов

    Разработчики Озон, Сбербанк-Онлайн, Яндекс, Netflix и многие другие смотрят на это заявление с недоумением. Да и интернет-магазины вы зря недооцениваете, например М-Видео разрабатывает большая команда, в которой несколько тимлидов.
    Ответ написан
    2 комментария
  • Python and json не правильно формирует базу, как починить?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Используйте базу данных. Например SQLite а не выдумывайте свои костыли
    Ответ написан
    1 комментарий
  • Python cоздание переменной с значением генерируемой переменной?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну если ты только изучаешь python, зачем тебе pandas. Код не надо править его нужно выкидывать.

    a) Ты хочешь прочитать каждый xlsx файл в отдельный фрейм, это нормально. Создаешь пустой список и складываешь в него фреймы.
    dfs = []
    for filename in fileanmes:
        df = pd.read_excel(filename)
        dfs.append(df)

    где filenames твои пути для xlsx файлов.

    б) Задача не ясна. На сколько я понял у этих файлов разные имена колонок и надо выбрать общий для всех набор.

    from functools import reduce
    import numpy as np
    
    df1 = pd.DataFrame({
        'A':[1],
        'B':[2]
    })
    
    df2 = pd.DataFrame({
        'A':[1],
        'C':[2]
    })
    
    df3 = pd.DataFrame({
        'A':[1],
        'D':[2]
    })
    
    dfs_column_names = [df1.columns, df2.columns, df3.columns]
    print(reduce(np.intersect1d, dfs_column_names))
    Вот так ты можешь найти общие колонки у любого количества фреймов.
    Естественно тебе не нужно хардкодить список с колонками прям в первом цикле заноси не только фрейм в список, но и в другой список заноси его колонки потом вне списка сохрани общий набор колонок как я привел в примере.

    Ну и я так понимаю в дальнейшем ты собираешься выбрать по уникальным для всех фреймов колонкам и собрать все в единый фрейм. pd.concat(dfs). Где dfs это список фреймов, с едиными колонками. То есть предварительно, ты как я показал нашел common_columns. и затеам dfs=[df[common_columns] for df in dfs]. И затем конкатенируешь.
    Ответ написан
    4 комментария
  • Как считать выражение из переменной?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если это
    lst = [1, 2, 1-2**64, 2**64]
    то нельзя, так как 1-2**64 вычисляется в момент создания списка.

    Единственный вариант - сразу передавать в строковом виде
    lst = ["1", "2", "1-2**64", "2**64"]
    pairs = [(x, eval(x)) for x in lst]
    min_pair = min(pairs, key=lambda x: x[1])
    print(min_pair[0])
    Ответ написан
    Комментировать
  • Как дропнуть все таблицы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе проще новую базу создавать каждый раз. Я так делал. А старая пускай лежит как бекап.
    Создаешь db1, db2, db3.... Потом удаляешь которые уже не нужны.

    Или в докере разворачиваешь если пустая нужна.
    Ответ написан