• Как красивее удалить N элемент из списка содержащего словари?

    @o5a
    remove удаляет именно указанный элемент, т.е. в данном случае так:
    a = [{'https': 'https://127.0.0.1:3128'}, {'https': 'https://127.0.0.18080'}, {'https': 'https://127.0.0.1:53052'}, {'https': 'https://127.0.0.1:44299'}]
    a.remove({'https': 'https://127.0.0.1:53052'})
    print(a)

    А зачем такая вложенная структура? Если цель просто хранить список прокси, то можно обойтись обычным списком строк, в данном случае
    a = ['https://127.0.0.1:3128', 'https://127.0.0.18080', 'https://127.0.0.1:53052', 'https://127.0.0.1:44299']
    a.remove('https://127.0.0.1:53052')
    print(a)
  • Как присоеденить код программы к интерфейсу?

    @o5a
    FeeFort103, я думал, будет понятно, что реализация этой функции (и привязка ее к событию) должна быть внутри класса, а не в основном коде.

    Судя по остальным ошибкам, Вам действительно стоит подучить основы языка.

    text = text.replace('пд','пипец')

    ну и остальное аналогично
  • Почему не заполняется база данных SQLite?

    @o5a
    Maxim045, в данном случае record это объект курсор, он существует, даже если данных нет, так что проверять так бессмысленно. Нужно проверять наличие данных по этому курсору, через fetchall или fetchone.
    record = cur.execute('SELECT * FROM tags_db WHERE Path=?', (path, ))
    result = record.fetchall()
    
    if not result:
    # и далее ...

    Тогда будет работать как планировалось - добавлять, если еще не было записей по данному path.

    Но вообще не совсем понятно, что именно не работает? Вставка данных в вашем варианте все равно должна быть.
  • Почему не заполняется база данных SQLite?

    @o5a
    Maxim045,
    1. Чтобы передать параметры в execute, нужно использовать кортежи. Если параметр один, то все равно его нужно оформить как кортеж. Т.е. в данном случае нужно было писать
    sql = cur.execute('SELECT * FROM tags_db WHERE path=?', (path, ) )

    Без этого такое использование как раз вызывает исключение.
    2. Но в целом конструкция нелогичная. sql заполняется, но не используется.
    Логика должна быть такая (судя по всему, цель обновить данные, а если их не было - занести): считываем как есть в sql, и если он пустой, то делаем INSERT, в противном случае UPDATE. А не как сейчас.
    Альтернатива этому - делать INSERT ... ON CONFLICT UPDATE (почитай про upsert). Но для этого нужно указать первичный ключ.

    Но даже с учетом этого навскидку данные должны были занестись.
  • Как присвоить значение ключу словаря на Python, который находится в JSON-файле?

    @o5a
    Zefffir, БД хорошее решение, лучше масштабируется, чем json. Но на всякий, если данных не много, то записывать назад json тоже не сложно. Загружаем данные в словарь через json.load() меняем словарь, и заново записываем в файл через json.dump().
  • Как присвоить значение ключу словаря на Python, который находится в JSON-файле?

    @o5a
    Zefffir, после того, как json прочитается через json.load() на выходе будет обычный словарь. Чаще всего вложенный, бывает с использованием списков, но работать с ним точно так же, как с обычным словарем.
  • Что надо сделать что бы Sqlite UPDATE заработал?

    @o5a
    Почему в исполнении UPDATE user_info в параметрах используется name[0], а не просто name? Насколько можно понять из остального кода, в name передается единственное имя строкой. Если это так, то из-за name[0] команда пытается проапдейтить таблицу по имени из одной буквы, и соответственно ничего не происходит.
  • Делаю бота для записи домашней работы в Telegram. Использую библиотеку sqlite3. Где ошибка в коде и как исправить?

    @o5a
    Kapuzev,
    Я добавил еще один столбец, назвал его id (Хотя это вообще не id) и слелал начальное заполнение таблицы. Заполнял я его так (0, "None", "None", "None"......)
    И дальше я просто менял (UPDATE) нужное поле где id = 0

    Это неправильная структура данных SQL, отсюда получается и такое "кривое" ее использование.

    В прошлом вашем вопросе я скидывал примеры структуры и как с ней работать Что не так в моем коде?
    Ваши "предметы" должны быть не полями, а значениями одного поля "Предмет". Соответственно для каждого значения предмета будет свое значение поля "ДЗ". Соответственно и запрос на обновление/получение данных по предмету станет адекватным:
    update dz set body = 'новый текст ДЗ' where subject = 'алгебра';
    
    select body from dz where subject = 'алгебра';
  • Делаю бота для записи домашней работы в Telegram. Использую библиотеку sqlite3. Где ошибка в коде и как исправить?

    @o5a
    Kapuzev, конкретно это ошибка из-за того, что соединение в коде по факту одно, а вызывается в разных потоках. Как уже писали, можно создавать каждый раз новое.
    Но и помимо этого есть принципиальные ошибки в коде.
    Например, кусок
    algebra = bot.send_message(message.chat.id, "Запишите дз")
    cursorObj.execute('INSERT INTO dz VALUES (?, )', (algebra, ))
    Здесь явное непонимание основ. В данном примере algebra содержит объект message. И вы его пытаетесь запихнуть в первое поле таблицы dz. По-хорошему подобная процедура должна добавлять/обновлять поле с содержанием задания по ключу "Предмет" (+"день недели", т.к. насколько понимаю он тоже должен учитываться).
    Почитайте основы SQL, сразу станет понятнее, какую структуру данных выбрать и как с ними работать.

    Если нет желания изучать SQL, можно использовать более простые структуры, например json или модуль shelve, для подобной задачи их в принципе тоже хватит, учитывая, что запись данных будет делать только админ, не придется особо думать о разделении доступа. Сможете туда писать в виде обычного словаря, вроде
    {"понедельник": {"алгебра":"здесь какое-то дз по алгебре", "физика":"дз по физике"}, "вторник":{ ....}}
  • Как в sqlite сделать на проверку на существование строк в таблице?

    @o5a
    Tayrus0, чтобы работала уникальность, в таблице должны быть указаны первичные ключи. В данном случае нужно создать первичный ключ по полю id.
    https://www.tutorialspoint.com/sqlite/sqlite_prima...
  • Как в sqlite сделать на проверку на существование строк в таблице?

    @o5a
    Tayrus0, если цель только пропускать дубликаты строк, то к своей INSERT в конце дописать ON CONFLICT DO NOTHING.
  • Что не так в моем коде?

    @o5a
    Kapuzev, лучше прочитать хотя бы основы SQL и работы с sqlite, потому что с нуля это просто не опишешь. В sqlite создается соединение с базой данных (файлом .db), а для исполнения команд SQL создается курсор, в который передается команда с необходимыми данными и в зависимости от вида команды можем получить на выходе результат (если это SELECT), с которым потом работаем как с обычным массивом.

    Могу дать некоторые простые примеры курсоров, как это может выглядеть в данном случае. Это не готовый скрипт, просто наброски для примера.
    # создается соединение
    conn = sqlite3.connect('homework.db')
    # объект-курсор
    c = conn.cursor()
    # одноразово создаем таблицу для хранения домашних заданий в разрезе дня недели и предмета
    c.execute('''CREATE TABLE IF NOT EXISTS homework (weekday number, subject text, body text)''')
    # затем нужно будет заполнить таблицу необходимыми данными
    
    # по "ключевым" значениям "день недели" + "предмет" меняем текст домашней работы в нашей таблице
    c.execute('''UPDATE homework SET body=? WHERE weekday=? AND subject=?''', (body, weekday, subject))
    # изменения данных в базе должны "сохраняться" через commit
    conn.commit()
    
    # примерно так может выглядеть функция, запрашивающая данные по "день"+"предмет"
    def get_homework(conn, weekday, subject):
        c = conn.cursor()
        # получаем данные (текст задания) по нашему ключу из двух полей (день+предмет)
        c.execute('''SELECT body FROM homework WHERE weekday=? AND subject=?''', (weekday, subject))
        return c.fetchone()[0]
  • Что не так в моем коде?

    @o5a
    Kapuzev,
    Насколько я понял, handle_admin_dz используется для записи ДЗ админом. Т.е. результатом работы этой функции должно стать занесение данных в какую-то внутреннюю структуру. Обычно делается через базу данных, самое простое - sqlite, уже встроенная в python. Другие варианты - хранение в текстовых файлах или использование модуля shelve.

    Для получения информации о ДЗ пользователем же должна использоваться другая функция, которая по выбранным пользователем данным (день/предмет) сделает запрос к нашей базе и выдаст в чат результат в читаемом виде.
  • С помощью какой формулы определить лежит ли точка внутри круга или нет?

    @o5a
    Jordan_Belforts,
    если радиус допустим равен 40 то взяв точку с координатами x = 40 и y = 40 в результате будет True хотя должно быть False.

    40^2 + 40^2 > 40^2, т.е. False
  • Как создавать неограниченное кол-во экземпляров класса?

    @o5a
    r1mple, любой способ создания списков подойдет, например так
    class Card():
        def __init__(self, num):
            self.num = num
    
        def __repr__(self):
            return f'Card #{self.num}'
    
    cards = [Card(i) for i in range(10)]
    print(cards)

    Если вопрос подразумевал что-то другое, то объясни конкретнее, что нужно.
  • Как работает sorted?

    @o5a
    Fantoner, На вход передается разрезанная на слова строка в виде списка (т.к. использован split()). Затем для каждого элемента массива применяется функция, указанная в key. В данном случае приведение к нижнему регистру. Соответственно для сортировки используются не оригинальные элементы списка, а соответствующие им уже обработанные функцией, т.е. при сортировке идет сравнение не 'a' с 'Andrew', а 'a' с 'andrew', поэтому 'a' становится перед 'Andrew'.
  • Не могу сохранить картинки после того как изменил их размер, как это сделать?

    @o5a
    img.save (dst) здесь должно быть имя файла, а в текущем виде передается имя директории. Нужно дополнить его соответствующим file
  • Как прочитать XML файл при помощи JSON в Python?

    @o5a
    Данила, Так это же обычный словарь. Чтобы вывести текст, надо использовать response_json['content']
  • Как правильно настроить MS SQL и подключиться через pyodbc?

    @o5a
    Пользователю нужны разрешения (GRANT) на соответствующие объекты базы данных, чтобы он мог с ними взаимодействовать. Не скажу точно про формат в MSSQL, думаю легко гуглится, в данном случае обычно примерно так:
    GRANT SELECT ON USERS TO USER
    users - таблица, user - пользователь БД
    Это одноразовая команда, после создания объекта/пользователя, не придется ее каждый раз запускать.