python按列名称在数组中获取元素,如在php中

时间:2012-10-31 12:18:53

标签: php python arrays

我希望能够执行类似下面的代码(PHP):

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

。所以通过索引获取元素。什么是最好的方式?

2 个答案:

答案 0 :(得分:3)

是的,使用内置类型的dictionaries

d = {'name': 'user'}
print d['name']
user

答案 1 :(得分: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