Python ValueError: not enough values to unpack (expected 3, got 1)

ometlux

Новичок
Пользователь
Апр 17, 2023
2
0
1
text был в теле скрипта, хочу перенести его в таблицу, но выдает ошибку ValueError: not enough values to unpack (expected 3, got 1)
Подскажите пожалуйста каким образом исправить на рабочий. Заранее огромное спасибо

Python:
list_of_groups = []
a = []
text = []

connection = sqlite3.connect("stats.db")
cursor = connection.cursor()

try:
    cursor.execute('''CREATE TABLE chats(
        id INTEGER,
        time TEXT
        text TEXT)
    ''')
    connection.commit()
except:
    pass



@app.on_message(filters.command("time", prefixes="/") & filters.me)
async def time(_, msg: Message):
    global text
    global connection
    global list_of_groups
    global cursor
    check = cursor.execute("SELECT id, time, text FROM chats").fetchall()
    done_list = str(check).replace(", '", "/").replace("(", "").replace(")", "").replace(",", "").replace("'",
                                                                                                          "").replace(
        "[", "").replace("]", "").split()
    list_of_groups = done_list
    start, end = map(str, msg.text.replace("/time ", "").split())
    now = datetime.datetime.now()
    used = []

    while True:
        now = datetime.datetime.now()
        if str(now)[11:16] == start:
            for group in list_of_groups:
                nud, interval, text = map(str, group.replace("/", " ").split())
                try:
                    await app.send_message(chat_id=int(nud), text=text)
                except:
                    pass 
            break             
        await sleep(60)
 

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
если попробовать от скуки перевести текст ошибки, то получится, что там, где нужно передать 3 аргумента - вы передаете один. в трейсбеке наверняка указан номер строки, где случилась эта ошибка. ищите там. ещё, если в except оставлять pass - готовьтесь удивляться непонятным падениям программы. нужно хотя бы в лог сохранять ошибки, чтобы было с чем работать. и глобальными переменными увлекаться не стОит.
 
  • Мне нравится
Реакции: ometlux

ometlux

Новичок
Пользователь
Апр 17, 2023
2
0
1
если попробовать от скуки перевести текст ошибки, то получится, что там, где нужно передать 3 аргумента - вы передаете один. в трейсбеке наверняка указан номер строки, где случилась эта ошибка. ищите там. ещё, если в except оставлять pass - готовьтесь удивляться непонятным падениям программы. нужно хотя бы в лог сохранять ошибки, чтобы было с чем работать. и глобальными переменными увлекаться не стОит.
Спасибо за отклик! Ошибка в этой строке: nud, interval, text = map(str, group.replace("/", " ").split())
 

robisho

Активный пользователь
Пользователь
Окт 19, 2020
151
26
28
Спасибо за отклик! Ошибка в этой строке: nud, interval, text = map(str, group.replace("/", " ").split())
ну проверяй теперь, что у тебя за group подается в map. используй print(group) перед вызовом map. возможно, проблема со слешем.
 

Форум IT Специалистов