Ошибка SQLAlchemy: INSERT value for column serveranswer.priority is explicitly rendered as a boundparameter in the VALUES clause

у меня есть функция:

def insert_to_db(table_name):
    all_dialogs = take_all_dialog(date_now)
    if table_name == "serveranswer":
        for row in all_dialogs:
            dialog = get_data_dialog(row.get('id'))
            print(dialog)
            print(dialog.get('ticket'))
            with sync_engine.connect() as conn:
                stmt = insert(serveranswer_table).values(
                    [
                        {"priority": dialog.get("ticket").get("priority")},
                        {"subject": dialog.get("ticket").get("subject")}
                    ]
                )
                conn.execute(stmt)
    conn.close()

она вставляет сущности из API сервиса в ячейки базы данных PostgreSQL проблема заключается в этом отрезке кода:

stmt = insert(serveranswer_table).values(
                    [
                        {"priority": dialog.get("ticket").get("priority")},
                        {"subject": dialog.get("ticket").get("subject")}
                    ]
                )

Код работает, если здесь указана только одна ячейка для вставки, например {"subject": dialog.get("ticket").get("subject")}

Код не работает, если их 2 и больше

Traceback (most recent call last):
  File "/Users/kurashov-no/PycharmProjects/pythonProject/SQLAlchemy/main.py", line 8, in <module>
    insert_to_db("serveranswer")
  File "/Users/kurashov-no/PycharmProjects/pythonProject/SQLAlchemy/core1.py", line 79, in insert_to_db
    conn.execute(stmt)
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1422, in execute
    return meth(
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 514, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1636, in _execute_clauseelement
    compiled_sql, extracted_params, cache_hit = elem._compile_w_cache(
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 715, in _compile_w_cache
    compiled_sql = self._compiler(
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 315, in _compiler
    return dialect.statement_compiler(dialect, self, **kw)
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/compiler.py", line 1429, in __init__
    Compiled.__init__(self, dialect, statement, **kwargs)
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/compiler.py", line 870, in __init__
    self.string = self.process(self.statement, **compile_kwargs)
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/compiler.py", line 915, in process
    return obj._compiler_dispatch(self, **kwargs)
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/visitors.py", line 141, in _compiler_dispatch
    return meth(self, **kw)  # type: ignore  # noqa: E501
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/compiler.py", line 5784, in visit_insert
{'ticket': {'id': 186705086, 'status_id': 8, 'priority': 'medium', 'type': 'question', 'subject': 'Chat', 'client_id': 144235356, 'assignee_id': 207729, 'group': 40045, 'last_updated_at': '2024-05-06 14:42:04', 'email': '', 'published_at': '2024-05-06 14:41:21', 'company_id': 162443, 'channel_id': 35086, 'additional_id': 'BrC4CQDgBiD8CtDYDIpDxC8DxDIBLBVDgBImDqMBzDC6eCaBpOCa8BOC2D9DpBFB', 'client_name': 'Без имени'}, 'tags': ['sdk', 'sys_решено саппортом', 'sys_тег_основное', 'sys_"призыв оператора"'], 'custom_fields': [{'id': 336252150, 'ticket_id': 186705086, 'ticket_field_id': 18696, 'value': '', 'created_at': None, 'updated_at': None}, {'id': 336252151, 'ticket_id': 186705086, 'ticket_field_id': 18697, 'value': '613830035', 'created_at': None, 'updated_at': None}, {'id': 336252152, 'ticket_id': 186705086, 'ticket_field_id': 18701, 'value': '36bf02a4bcaa1cf8', 'created_at': None, 'updated_at': None}, {'id': 336252153, 'ticket_id': 186705086, 'ticket_field_id': 18702, 'value': '', 'created_at': None, 'updated_at': None}, {'id': 336252154, 'ticket_id': 186705086, 'ticket_field_id': 18689, 'value': 'Звук', 'created_at': None, 'updated_at': None}, {'id': 336252155, 'ticket_id': 186705086, 'ticket_field_id': 18706, 'value': '4.58.0', 'created_at': None, 'updated_at': None}, {'id': 336252156, 'ticket_id': 186705086, 'ticket_field_id': 18707, 'value': 'RMX3511', 'created_at': None, 'updated_at': None}, {'id': 336252157, 'ticket_id': 186705086, 'ticket_field_id': 18708, 'value': '13', 'created_at': None, 'updated_at': None}, {'id': 336252158, 'ticket_id': 186705086, 'ticket_field_id': 18712, 'value': '', 'created_at': None, 'updated_at': None}, {'id': 336252160, 'ticket_id': 186705086, 'ticket_field_id': 18713, 'value': '', 'created_at': None, 'updated_at': None}, {'id': 336252161, 'ticket_id': 186705086, 'ticket_field_id': 19953, 'value': '0', 'created_at': None, 'updated_at': None}, {'id': 336252162, 'ticket_id': 186705086, 'ticket_field_id': 20941, 'value': 'MTS RUS', 'created_at': None, 'updated_at': None}, {'id': 336252163, 'ticket_id': 186705086, 'ticket_field_id': 23173, 'value': 'Freemium', 'created_at': None, 'updated_at': None}, {'id': 336252164, 'ticket_id': 186705086, 'ticket_field_id': 23174, 'value': 'None', 'created_at': None, 'updated_at': None}, {'id': 336252165, 'ticket_id': 186705086, 'ticket_field_id': 24503, 'value': 'Unreg', 'created_at': None, 'updated_at': None}], 'comments': [{'id': 798601484, 'message': 'Апрлыц', 'from': 'client', 'type': 'public', 'user_id': None, 'user': None, 'client_id': 144235356, 'client_name': 'Без имени', 'client': {'id': 144235356, 'name': 'Без имени', 'avatar': None, 'position': '', 'note': '', 'company_id': 162443, 'zendesk_id': None, 'spammer': 0, 'vip': 0, 'client_company_id': None, 'created_at': '2024-05-06 14:41:16', 'updated_at': '2024-05-06 14:41:23', 'lang': 'it', 'deleted_at': None}, 'ticket_id': 186705086, 'is_first': 0, 'delivered': 0, 'readed': 0, 'published_at': '2024-05-06 14:42:04', 'file': None, 'files': [], 'bcc': [], 'cc': []}, {'id': 798601390, 'message': 'Вр и на этот раз он меня не было бы не стал бы вы хотели знать о праве собственности на землю в мы с вами Ц Элбэгдорж на сайте компании в мы с вами не так давно не виделись с помощью этой формы с вами в у меня уже не у меня есть подарок', 'from': 'client', 'type': 'public', 'user_id': None, 'user': None, 'client_id': 144235356, 'client_name': 'Без имени', 'client': {'id': 144235356, 'name': 'Без имени', 'avatar': None, 'position': '', 'note': '', 'company_id': 162443, 'zendesk_id': None, 'spammer': 0, 'vip': 0, 'client_company_id': None, 'created_at': '2024-05-06 14:41:16', 'updated_at': '2024-05-06 14:41:23', 'lang': 'it', 'deleted_at': None}, 'ticket_id': 186705086, 'is_first': 0, 'delivered': 0, 'readed': 0, 'published_at': '2024-05-06 14:41:56', 'file': None, 'files': [], 'bcc': [], 'cc': []}, {'id': 798601100, 'message': 'Время⏰ в центре города Москвы на? подготовку к новому сезону и на? подготовку в местном кметстве Плачковци', 'from': 'client', 'type': 'public', 'user_id': None, 'user': None, 'client_id': 144235356, 'client_name': 'Без имени', 'client': {'id': 144235356, 'name': 'Без имени', 'avatar': None, 'position': '', 'note': '', 'company_id': 162443, 'zendesk_id': None, 'spammer': 0, 'vip': 0, 'client_company_id': None, 'created_at': '2024-05-06 14:41:16', 'updated_at': '2024-05-06 14:41:23', 'lang': 'it', 'deleted_at': None}, 'ticket_id': 186705086, 'is_first': 0, 'delivered': 0, 'readed': 0, 'published_at': '2024-05-06 14:41:32', 'file': None, 'files': [], 'bcc': [], 'cc': []}, {'id': 798600976, 'message': 'Мецей', 'from': 'client', 'type': 'public', 'user_id': None, 'user': None, 'client_id': 144235356, 'client_name': 'Без имени', 'client': {'id': 144235356, 'name': 'Без имени', 'avatar': None, 'position': '', 'note': '', 'company_id': 162443, 'zendesk_id': None, 'spammer': 0, 'vip': 0, 'client_company_id': None, 'created_at': '2024-05-06 14:41:16', 'updated_at': '2024-05-06 14:41:23', 'lang': 'it', 'deleted_at': None}, 'ticket_id': 186705086, 'is_first': 0, 'delivered': 0, 'readed': 0, 'published_at': '2024-05-06 14:41:24', 'file': None, 'files': [], 'bcc': [], 'cc': []}, {'id': 798600947, 'message': 'Ропде', 'from': 'client', 'type': 'public', 'user_id': None, 'user': None, 'client_id': 144235356, 'client_name': 'Без имени', 'client': {'id': 144235356, 'name': 'Без имени', 'avatar': None, 'position': '', 'note': '', 'company_id': 162443, 'zendesk_id': None, 'spammer': 0, 'vip': 0, 'client_company_id': None, 'created_at': '2024-05-06 14:41:16', 'updated_at': '2024-05-06 14:41:23', 'lang': 'it', 'deleted_at': None}, 'ticket_id': 186705086, 'is_first': 0, 'delivered': 0, 'readed': 0, 'published_at': '2024-05-06 14:41:21', 'file': None, 'files': [], 'bcc': [], 'cc': []}, {'id': 798600945, 'message': '<p>app_name: com.zvooq.openplay</p><p>app_version: 4.58.0</p><p>device: realme RMX3511</p><p>mobile_operator_name: MTS RUS</p><p>os: Android 13 (API level 33)</p>', 'from': 'client', 'type': 'private', 'user_id': None, 'user': None, 'client_id': 144235356, 'client_name': 'Без имени', 'client': {'id': 144235356, 'name': 'Без имени', 'avatar': None, 'position': '', 'note': '', 'company_id': 162443, 'zendesk_id': None, 'spammer': 0, 'vip': 0, 'client_company_id': None, 'created_at': '2024-05-06 14:41:16', 'updated_at': '2024-05-06 14:41:23', 'lang': 'it', 'deleted_at': None}, 'ticket_id': 186705086, 'is_first': 0, 'delivered': 0, 'readed': 0, 'published_at': '2024-05-06 14:41:21', 'file': None, 'files': [], 'bcc': [], 'cc': []}], 'changes': [{'id': 1926301698, 'trigger_id': None, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'message_from_client', 'value': 144235356}], 'changed_at': '2024-05-06 14:42:01', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300975, 'trigger_id': None, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'message_from_client', 'value': 144235356}], 'changed_at': '2024-05-06 14:41:37', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300743, 'trigger_id': None, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'message_from_client', 'value': 144235356}], 'changed_at': '2024-05-06 14:41:29', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300740, 'trigger_id': 62501, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'tags', 'value': ['sys_"призыв оператора"'], 'old_value': ['sdk', 'sys_решено саппортом', 'sys_тег_основное'], 'action': 'add_tags'}, {'target': 'trigger', 'value': 62501}], 'changed_at': '2024-05-06 14:41:29', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300733, 'trigger_id': 61745, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'tags', 'value': ['sys_решено саппортом', 'sys_тег_основное'], 'old_value': ['sdk'], 'action': 'add_tags'}, {'target': 'trigger', 'value': 61745}], 'changed_at': '2024-05-06 14:41:28', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300727, 'trigger_id': 56180, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'group', 'value': 40045, 'old_value': None, 'action': 'assign_next_agent_online'}, {'target': 'assignee_id', 'value': 207729, 'old_value': None, 'action': 'assign_next_agent_online'}, {'target': 'trigger', 'value': 56180}], 'changed_at': '2024-05-06 14:41:28', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300722, 'trigger_id': None, 'user_id': 207041, 'ticket_id': 186705086, 'data': [{'target': 'ticket_field', 'value': 'Name &rarr; '}, {'target': 'ticket_field__18696', 'value': '', 'old_value': None}, {'target': 'ticket_field', 'value': 'User_id &rarr; 613830035'}, {'target': 'ticket_field__18697', 'value': '613830035', 'old_value': None}, {'target': 'ticket_field', 'value': 'Device_id &rarr; 36bf02a4bcaa1cf8'}, {'target': 'ticket_field__18701', 'value': '36bf02a4bcaa1cf8', 'old_value': None}, {'target': 'ticket_field', 'value': 'subscription_name &rarr; '}, {'target': 'ticket_field__18702', 'value': '', 'old_value': None}, {'target': 'ticket_field', 'value': 'App_Name &rarr; Звук'}, {'target': 'ticket_field__18689', 'value': 'Звук', 'old_value': None}, {'target': 'ticket_field', 'value': 'Android_app_version &rarr; 4.58.0'}, {'target': 'ticket_field__18706', 'value': '4.58.0', 'old_value': None}, {'target': 'ticket_field', 'value': 'Android_device &rarr; RMX3511'}, {'target': 'ticket_field__18707', 'value': 'RMX3511', 'old_value': None}, {'target': 'ticket_field', 'value': 'Android_os_version &rarr; 13'}, {'target': 'ticket_field__18708', 'value': '13', 'old_value': None}, {'target': 'ticket_field', 'value': 'email &rarr; '}, {'target': 'ticket_field__18712', 'value': '', 'old_value': None}, {'target': 'ticket_field', 'value': 'phone &rarr; '}, {'target': 'ticket_field__18713', 'value': '', 'old_value': None}, {'target': 'ticket_field', 'value': 'sub_count &rarr; 0'}, {'target': 'ticket_field__19953', 'value': '0', 'old_value': None}, {'target': 'ticket_field', 'value': 'Мобильный оператор &rarr; MTS RUS'}, {'target': 'ticket_field__20941', 'value': 'MTS RUS', 'old_value': None}, {'target': 'ticket_field', 'value': 'Subscription_status &rarr; Freemium'}, {'target': 'ticket_field__23173', 'value': 'Freemium', 'old_value': None}, {'target': 'ticket_field', 'value': 'Subscription_type &rarr; None'}, {'target': 'ticket_field__23174', 'value': 'None', 'old_value': None}, {'target': 'ticket_field', 'value': 'registration_status &rarr; Unreg'}, {'target': 'ticket_field__24503', 'value': 'Unreg', 'old_value': None}], 'changed_at': '2024-05-06 14:41:28', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300712, 'trigger_id': 58440, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'sla_policy', 'value': '6311', 'old_value': 6191, 'action': 'update_sla_policy'}, {'target': 'trigger', 'value': 58440}], 'changed_at': '2024-05-06 14:41:28', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300684, 'trigger_id': None, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'message_from_client', 'value': 144235356}], 'changed_at': '2024-05-06 14:41:27', 'old_status': 0, 'new_status': 0, 'company_id': 162443}, {'id': 1926300500, 'trigger_id': None, 'user_id': None, 'ticket_id': 186705086, 'data': [{'target': 'ticket_created', 'value': 186705086}], 'changed_at': '2024-05-06 14:41:21', 'old_status': 0, 'new_status': 8, 'company_id': 162443}]}
{'id': 186705086, 'status_id': 8, 'priority': 'medium', 'type': 'question', 'subject': 'Chat', 'client_id': 144235356, 'assignee_id': 207729, 'group': 40045, 'last_updated_at': '2024-05-06 14:42:04', 'email': '', 'published_at': '2024-05-06 14:41:21', 'company_id': 162443, 'channel_id': 35086, 'additional_id': 'BrC4CQDgBiD8CtDYDIpDxC8DxDIBLBVDgBImDqMBzDC6eCaBpOCa8BOC2D9DpBFB', 'client_name': 'Без имени'}
    crud_params_struct = crud._get_crud_params(
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/crud.py", line 348, in _get_crud_params
    multi_extended_values = _extend_values_for_multiparams(
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/crud.py", line 1460, in _extend_values_for_multiparams
    new_param = _process_multiparam_default_bind(
  File "/Users/kurashov-no/PycharmProjects/pythonProject/venv/lib/python3.9/site-packages/sqlalchemy/sql/crud.py", line 1320, in _process_multiparam_default_bind
    raise exc.CompileError(
sqlalchemy.exc.CompileError: INSERT value for column serveranswer.priority is explicitly rendered as a boundparameter in the VALUES clause; a Python-side value or SQL expression is required

Process finished with exit code 1

Я пытался найти проблему в интернете — но либо не понял, либо не нашел.


Ответы (1 шт):

Автор решения: skolwayn

Просто надо было зайти на оф. сайт и поискать там. ссылка!

введите сюда описание изображения

→ Ссылка