Estaba reconvirtiendo un programita hecho en PHP a Python.
Estaba acostumbrado a hacer:
function datos($tabla,$campo,$clave){
$sql_det = 'SELECT * FROM '.$tabla.' WHERE '.$campo.'="'.$clave.'"';
$res_det = mysql_query($sql_det);
return mysql_fetch_array($res_det);
Sin embargo, al intentar hacer lo mismo en Python
def consulta(sql): db = MySQLdb.connect(host="localhost",user="xxxl",passwd="xxx",db="xxxx") cur = db.cursor(MySQLdb.cursors.DictCursor) cur.execute(sql) res = cur.fetchall() return res
Me devuelve un array que requere de un índice entero para referirse a él. Yo estaba acostumbrado a referirme a los campos por su nombre.
Buscando por ahí, encontré la solución que espero sea útil para quien tenga similares problemas:
def consulta(sql): db = MySQLdb.connect(host="localhost",user="xxxl",passwd="xxx",db="xxx") cur = db.cursor(MySQLdb.cursors.DictCursor) cur.execute(sql) res = cur.fetchall() return res
El original fue encontrado en “Will code for food“.