python - 用逗号打印unicode

时间:2014-07-08 11:02:04

标签: python

任何人都可以解释为什么这个

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

2 个答案:

答案 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