У нас есть база данных PostgreSQL с хранимой процедурой, которая возвращает SETOF типа с этим определением:Почему sqlalchmy func возвращает строки вместо целых?
Column | Type | Modifiers
-------+---------+----------
my_id | integer |
Однако, когда я выполняю функцию:
for result in session.query(func.get_my_thing(someval)):
print(result)
Это дает мне результаты как это:
('(8968)',)
Да, это кортеж из строк, которые выглядят вроде как один элемент кортежа. Это определенно строка, то есть print(type(result[0]))
показывает, что она имеет тип str
.
Почему он возвращает этот тип строки вместо целого числа, возвращаемого функцией?
Создайте [псевдоним] (http://docs.sqlalchemy.org/en/latest/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias) из f и следуйте инструкциям по его использованию в 'select_from'. Пример специально для postgresql. –