带comm的python打印unicode

2024-06-26 01:55:32 发布

您现在位置: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

Tags: nameinappleforsessiondevicequeryprint
2条回答

它们是元组(可能是namedtuples),您可以像这样解压它们:

for name, in session.query(Device.manufacturer_name):
    print name

您请求一个特定的列,结果是以行的形式出现的。每行是一个只有1个值的元组。你知道吗

只需编制索引即可获得该值:

for row in session.query(Device.manufacturer_name):
    print row[0]

或者可以使用元组分配:

for name, in session.query(Device.manufacturer_name):
    print name

注意for目标列表中的逗号;Python现在将每个元组解压到一个目标名称的“列表”中。你知道吗

相关问题 更多 >