-1

我希望能够执行以下代码(即 PHP)之类的操作:

while($row = mysql_fetch_array($result)){
    $name = $row['name'];
    $event = $row['event'];

在蟒蛇。所以通过它的索引来获取一个元素。什么是最好的方法?

4

2 回答 2

3

是的,使用内置类型的字典。

d = {'name': 'user'}
print d['name']
user
于 2012-10-31T12:21:55.497 回答
1

您使用 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                                                                                                                  
于 2012-10-31T12:38:14.070 回答