@dmitriy8720

TypeError: function takes at most 2 arguments (3 given) как исправить?

Создаю база для id и file_id но возникла ошибка, база создалась, но там id и file_id пустой, хотя в боте нажал старт и должен был записать, мой id telegram.
6203d0ba2a4ff323710015.jpeg
import sqlite3
from sqlite3 import connect
import cursor as cursor
import telebot

API_TOKEN = 'moy_token'

bot = telebot.TeleBot(API_TOKEN)

@bot.message_handler(commands=['start'])
def start(message):
    connect = sqlite3.connect('users.db')
    cursor = connect.cursor()

    cursor.execute("""CREATE TABLE IF NOT EXISTS username_id( 
    id INTEGER,
    file_id INTEGER
    )""")

    connect.commit()

    user_id = ["message.chat.id"]
    file_id = ["message.photo.file_id"]
    cursor.execute("INSERT INTO username_id VALUES(?,?);",user_id, file_id)
    connect.commit()

bot.infinity_polling()


Смотрел видео и там человек сказал, если одно поле, значит один знак вопроса,я прописал 2 и все равно ошибка.
2 Вопрос, как прописать чтобы фото записывались в базу по параметру file_id, возможно я как то не так прописал и поэтому ошибка.

cursor.execute("INSERT INTO username_id VALUES(?,?);",user_id, file_id)
TypeError: function takes at most 2 arguments (3 given)

Мне писали, что нужно MediaGroup и как к file_id это прописать.
  • Вопрос задан
  • 1221 просмотр
Решения вопроса 2
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
cursor.execute("INSERT INTO username_id VALUES(?,?);",(user_id, file_id))
Ответ написан
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Нужно передать кортеж:
cursor.execute("INSERT INTO username_id VALUES(?,?);",(user_id, file_id,))

PS: После CREATE TABLE... коммит не нужно делать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы