Код: Выделить всё
@task
def get_result_from_records_api(api, tries: int, result_from_salons_api: list):
salon_ids_list = result_from_salons_api[1]
# result is 4 pd.DataFrames
result_from_records_api = get_data_or_raise_error_with_retry(api.get_records_staff_sales_of_services_goods, tries, salon_ids_list=salon_ids_list)
# make lists for dfs
records_lst = []
staff_from_records_lst = []
services_sales_lst = []
good_sales_lst = []
# put dfs in lists
records_lst.append(result_from_records_api[0])
staff_from_records_lst.append(result_from_records_api[1])
services_sales_lst.append(result_from_records_api[2])
good_sales_lst.append(result_from_records_api[3])
# make dict with lists
result_dict = {
'records': records_lst
, 'staff_from_records': staff_from_records_lst
, 'services_sales': services_sales_lst
, 'good_sales': good_sales_lst
}
return result_dict
Я пробовал поместить результат в список, кортеж, словарь , но каждый раз получаю ошибку:
Код: Выделить всё
{xcom.py:664} ERROR - ('cannot mix list and non-list, non-null values', 'Conversion failed for column position with type object'). If you are using pickle instead of JSON for XCom, then you need to enable pickle support for XCom in your airflow config or make sure to decorate your object with attr.
П. S. Я уже включил Enable_xcom_picking в docker-compose.yml:
Код: Выделить всё
AIRFLOW__CORE__ENABLE_XCOM_PICKLING=true
Python 3.11
Подробнее здесь: https://stackoverflow.com/questions/786 ... conversion