MySQLdb如何按照列名访问结果

2013-08-20 17:46:06 +08:00
 kenneth
cursor.execute("select id, name from table")
rows = cursor.fetchall()
for row in rows:
print row.id, row.need_fetch

AttributeError: 'tuple' object has no attribute 'id'

求教V2EX高手,如何按照列名来访问不要row[0]这种方式
4166 次点击
所在节点    Python
5 条回复
hahastudio
2013-08-20 18:18:33 +08:00
import MySQLdb
db = MySQLdb.connect( ... )
cur = db.cursor(MySQLdb.cursors.DictCursor)
cur.execute('select * from test;')

>>> cur.fetchone()
{'a': 1L, 'c': 3L, 'b': 2L}
kenneth
2013-08-20 18:28:46 +08:00
@hahastudio 可能你没理解我的问题
hahastudio
2013-08-20 19:23:51 +08:00
@kenneth
>>> rows = cursor.fetchall()
>>> for row in rows:
>>> for row in rows:
... print row['a'], row['c']
...
2 3
2 4
3 3
1 2

都字典了,该怎么按照 column name 访问不是很明确吗,一定要用namedtuple访问的话你构造一个呗= =
哦,顺带一提,我这列的名字就叫a, b, c= =
SErHo
2013-08-20 19:42:05 +08:00
lj0014
2013-08-21 10:13:52 +08:00
row = result.fetch_row(how=1)[0]
row['a']
row['b']
...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/79655

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX