@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
  • Вопрос задан
  • 1511 просмотров
Решения вопроса 2
@PavelMos
Какой-то из объектов оказался пустым NoneType, и с ним невозможны те операции, которые прописаны в скрипте.
Надо смотреть конкретную строку, где ошибка.
Может быть, кто-то по тому, что упомнянут unpack, и без этого поймет, где ругается.
Ответ написан
@newPsevdonim Автор вопроса
Python разработчик
Селект запрос, может вернуть None, в таком случае возвращаться ничего не будет. Необходимо было добавить else для первого if.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы