【发布时间】:2014-01-11 16:30:18
【问题描述】:
我有以下代码:
query = """
SELECT Coalesce((SELECT sp.param_value
FROM sites_params sp
WHERE sp.param_name = 'ci'
AND sp.site_id = s.id
ORDER BY sp.id DESC
LIMIT 1), -1) AS ci
FROM sites s
WHERE s.deleted = 0
AND s.id = 10
"""
site = db_session.execute(query)
# print site
# <sqlalchemy.engine.result.ResultProxy object at 0x033E63D0>
site = db_session.execute(query).fetchone()
print site # (u'375')
print list(site) # [u'375']
为什么 SQLAlchemy 为这个查询返回元组,而不是字典?我想使用以下样式来访问查询结果:
print site.ci
# u'375'
【问题讨论】:
-
* confused * 您选择了
"sp.param_value",但希望结果代理有一个名为"ci"的成员?你可以使用像字典一样的结果代理,但你会使用像print site['param_value'] -
resultproxy 返回元组,我想要,那就是 resultproxy 返回字典
site['ci']或site.ci -
我同意@Gryphius。你可以这样试试
print site['ci'] -
@Gryphius,@Syed Habib M,它不起作用! ResultProxy 返回元组,而不是 dict,而不是其他人!!!
(u'375') -
你试过了吗?你确定 Coalesce 表中有像“ci”这样的列名吗?
标签: python sqlalchemy