我希望能够执行以下代码(即 PHP)之类的操作:
while($row = mysql_fetch_array($result)){
$name = $row['name'];
$event = $row['event'];
在蟒蛇。所以通过它的索引来获取一个元素。什么是最好的方法?
是的,使用内置类型的字典。
d = {'name': 'user'}
print d['name']
user
您使用 MySQLdb 包中的 DictCursor 对象。这将在结果集中生成字典(映射)而不是通常的元组。
import MySQLdb
from MySQLdb import cursors
def fetchallmap(self, q, *args):
"""Fetch all rows into a dictionary.
"""
curs = self._connection.cursor(cursors.DictCursor)
curs.execute(q, args)
res = curs.fetchall()
curs.close()
self._connection.commit()
return res
这将返回一个字典列表(映射)。如果您只想要一行,只需替换fetchoone
而不是fetchall
.
def fetchonemap(self, q, *args):
"""Fetch one row into a dictionary.
"""
curs = self._connection.cursor(cursors.DictCursor)
curs.execute(q, args)
res = curs.fetchone()
curs.close()
self._connection.commit()
return res