从sqlalchemy只有一排

时间:2012-11-03 01:35:18

标签: python sqlalchemy

import re
from sqlalchemy import *

db = create_engine('sqlite:///code.db')

db.echo = True

metadata = MetaData(db)

halo4 = Table('emblem_codes', metadata, autoload=True)

#########################
## Get One Unused Code ##
#########################

s = select([halo4.c.code, halo4.c.status=='None'])
result = s.execute()

for row in result:
    print row

我的代码返回所有80999个结果。我只想要一个。这是最好的方法吗?

这是code.db的示例:

(u'JRQRY-MYHW3-D67GR-7YWFF-CRJ31', None)
(u'9D7DR-4WFDY-VG49F-3DYCG-7DYT5', None)
(u'QR9WT-P3CTM-PW4WW-34JJ4-RFKV7', None)
(u'7FMXQ-H97TC-FFYC6-XHXFV-Y7KR2', None)
(u'VKHXW-29WC4-4PF4Y-2QMJ4-4W2H4', None)

1 个答案:

答案 0 :(得分:13)

如果您想从ResultProxy对象中获取一行(这是s.execute()语句的结果,则需要使用fetchone()方法:

s = select([halo4.c.code, halo4.c.status=='None'])
result = s.execute()
one_row = result.fetchone()
another_row = result.fetchone()