@newPsevdonim
Python разработчик

Почему данный скрипт может падать с ошибкой TypeError: cannot unpack non-iterable NoneType object?

У меня есть код, который работает в фоновом режиме и делает некоторые запросы к бд, а потом формируетиз этого датафрейм. Но после некоторого времени он упал со следующей ошибкой:
Traceback (most recent call last):
 File "/usr/lib/python3.9/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "/usr/lib/python3.9/multiprocessing/pool.py", line 48, in mapstar
return list(map(*args))

File "/log-classifier/init_modul/StartGetData.py", line 11, in run_pool
 temporary_df, last_time = GetData.create_df_from_clickhouse(
TypeError: cannot unpack non-iterable NoneType object


Вот часть скрипта где он может падать:
#
        table  = запрос к бд
        last_time = запрос к бд

        dict_df = {колонка1 : [], колонка2: [], ...}
       
        if table:
            keys = list(dict_for_df.keys())
            for row in table:
                for index, j in enumerate(keys):
                    dict_for_df[keys[index]].append(row[index])

            df = pd.DataFrame(dict_for_df)

            if df.shape[0] > 0:
                return df, last_time
            else:
                return None, last_time
  • Вопрос задан
  • 1290 просмотров
Решения вопроса 2
@PavelMos
Какой-то из объектов оказался пустым NoneType, и с ним невозможны те операции, которые прописаны в скрипте.
Надо смотреть конкретную строку, где ошибка.
Может быть, кто-то по тому, что упомнянут unpack, и без этого поймет, где ругается.
Ответ написан
@newPsevdonim Автор вопроса
Python разработчик
Селект запрос, может вернуть None, в таком случае возвращаться ничего не будет. Необходимо было добавить else для первого if.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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