我只想执行sql:
select distinct price from items
所以我写下面的sqlalchemy代码:
result_list = session.query(func.distinct(items.price)).all()
在我的数据库中,只有2
个不同的价格,因此结果应为100
和200
。
但是,它会返回sqlalchemy.util._collections.result
的列表。
但我想要的是一个int列表,例如[100, 200]
当然我可以这样做:
int_list = [ x.price for x in result_list ]
但这"解决方法"太难看了。
那么有一个像to_base_type
这样的函数,这样我就可以编写这样的代码:
int_list = session.query(func.distinct(items.price)).to_base_type()
非常感谢有人能帮助我
答案 0 :(得分:0)
您可以使用结果类的_asdict()
方法。
一个例子是
def get_dict_list_from_result(result):
list_dict = []
for i in result:
i_dict = i._asdict() # sqlalchemy.util._collections.result , has a method called _asdict()
list_dict.append(i_dict)
return list_dict
答案 1 :(得分:0)
看着这个答案:https://stackoverflow.com/a/13118371/8953378
您可以使用:
cpuid.7.ebx = "----:----:---1:----:----:----:----:----"
答案 2 :(得分:0)
返回的结果是KeyedTuple
,因此,当您遍历它时,可以这样写:
result_list = session.query(items.X, items.Y, func.distinct(items.price)).all()
for (x, y, price) in result_list:
... now just use x,y and price as regular variables ....
请注意,_asdict()
不是有序的字典……(以防对某人很重要)
答案 3 :(得分:-1)
select
P.S。:还应该返回primary_key