以下のコード(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
これにより、辞書 (マッピング) のリストが返されます。1行だけが必要な場合は、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