В документации psycopg2 есть инструкция о том, как привести конкретный тип к другому типу:
Psycopg преобразует десятичные / числовые типы баз данных в объекты Python Decimal.Могу ли я вместо этого использовать float?
Вы можете зарегистрировать настраиваемый адаптер для десятичного типа PostgreSQL:
DEC2FLOAT = psycopg2.extensions.new_type(
psycopg2.extensions.DECIMAL.values,
'DEC2FLOAT',
lambda value, curs: float(value) if value is not None else None)
psycopg2.extensions.register_type(DEC2FLOAT)
Но мои данные будут иметь смесь типа str, float, integer, decimal, dateи т. д. Как мне сказать psycopg2 приводить любое не строковое значение в строку?Я не хочу регистрировать настроенный адаптер каждый раз, когда сталкиваюсь с новым типом, потому что мой запрос может измениться.
Надеюсь, я проясню ситуацию достаточно.заранее спасибо.