任何人都可以解释为什么这个
for name in session.query(Device.manufacturer_name):
print name
结果
(u'Apple',)
(u'Samsung',)
(u'Sony',)
(u'HTC',)
但是这 - 我认为这完全是一回事
for device in session.query(Device):
print device.manufacturer_name
给出不同的结果?
Apple
Samsung
Sony
HTC
答案 0 :(得分:2)
您要求提供特定列,并以行的形式获得结果。每行是一个只有1个值的元组。
您只需索引即可获得该值:
for row in session.query(Device.manufacturer_name):
print row[0]
或者你可以使用元组赋值:
for name, in session.query(Device.manufacturer_name):
print name
请注意for
目标列表中的逗号; Python现在将每个元组解压缩到'列表中。一个目标名称。
答案 1 :(得分:1)
他们是元组(可能是namedtuples),你可以像这样解压缩它们:
for name, in session.query(Device.manufacturer_name):
print name