Я хотел бы загрузить записи в Postgres с помощью SQLAlchemy ORM, но я получаю эту ошибку: psycopg2.ProgrammingError: невозможно адаптировать тип 'lxml.objectify.StringElement'
У меня есть модель:
class B2bProduct(Base):
__tablename__ = 'b2b_product'
code = Column(String, primary_key=True)
И когда я пытаюсь вставить список продуктов (список диктов, где значения имеют тип 'lxml.objectify.StringElement'):
with session_scope() as s:
s.bulk_insert_mappings(B2bProduct, prod_list)
Я получаю эту ошибку:
psycopg2.ProgrammingError: can't adapt type 'lxml.objectify.StringElement'
В качестве обходного пути я могу привести все значения в строку Python перед массовой вставкой.Однако я бы предпочел, чтобы кастинг проходил в определении класса B2bProduct.Можно ли использовать декларативное ORM, чтобы оно автоматически преобразовывало любое значение, которое я ему даю, в строку Python (до фактической вставки)?
Примерно так:
code = Column(String, primary_key=True, convert_to_string=True)
Не знаю, но я могу спросить о TypeEngine, который будет выполнять преобразование.Вы можете посоветовать?