Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在sqlalchemy中获取值列表而不是类_Python 3.x_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python 3.x 在sqlalchemy中获取值列表而不是类

Python 3.x 在sqlalchemy中获取值列表而不是类,python-3.x,sqlalchemy,flask-sqlalchemy,Python 3.x,Sqlalchemy,Flask Sqlalchemy,这个问题看起来很简单,但我很难找到关于StackOverflow的现有解决方案 当我运行sqlalchemy命令时,如下所示 valid_columns = db.session.query(CrmLabels).filter_by(user_id=client_id).first() 我得到一个不可编辑的CrmLabels对象。如果我打印这个对象,我会得到一个列表 [Convert Source, Convert Medium, Landing Page] 但这是不可容忍的。我希望得到上面

这个问题看起来很简单,但我很难找到关于StackOverflow的现有解决方案

当我运行sqlalchemy命令时,如下所示

valid_columns = db.session.query(CrmLabels).filter_by(user_id=client_id).first()
我得到一个不可编辑的CrmLabels对象。如果我打印这个对象,我会得到一个列表

[Convert Source, Convert Medium, Landing Page]
但这是不可容忍的。我希望得到上面显示的内容,除了字符串列表

['Convert Source', 'Convert Medium', 'Landing Page']

如何运行将返回此结果的查询?

下面的更改应执行此操作:

valid_columns = (
    db.session.query(CrmLabels).filter_by(user_id=client_id)
    .statement.execute()  # just add this
    .first()
)
但是,您需要确定列的顺序,并且可以使用
valid\u columns.keys()
确保值的顺序符合预期


或者,您可以使用dict(valid_columns.items())

创建字典,我不建议这样做,但您可以使用
eval
,但应该避免使用。除此之外,我想不出任何其他方法。请将问题包含在
CrmLabels
类的源代码中。可能您只需要类似
session.query(CrmLabels.name)
的内容,请不要使用
eval
。如果要查询整个表,但作为结果元组而不是映射对象,请使用
query(CrmLabels.\uuu table\uuu)
。但我觉得这有点像XY问题。谢谢大家。最后,我使用类属性(例如CrmLabels.status)从表中获取每个值。这并不理想,但很有效,这就是我目前真正需要的。