如何使用MySql数据库在Python中使用列名检索SQL结果列值?

时间:2016-05-01 14:07:25

标签: python sql

有没有办法在Python中使用列名而不是列索引来检索SQL结果列值?

result = `select name, deptname from employee;`

我试过下面的一个:

cursor = conn.cursor(MySQLdb.cursors.DictCursor)
cursor.execute("SELECT name, category FROM animal")
result_set = cursor.fetchall()
for row in result_set:
    print "%s, %s" % (row["name"], row["deptname"])

我在这里遇到如下错误:

TypeError: tuple indices must be integers, not str

任何帮助都会很棒吗?

2 个答案:

答案 0 :(得分:2)

实际上你得到了你想要的东西。 你只需要将行不是作为字典而是作为元组使用。 这意味着索引是数字,而不是字符串。 尝试

print "%s, %s" % (row[0], row[1])

代替

答案 1 :(得分:1)

您没有正确指定需要字典光标。在调用connect()方法时,请设置cursorclass

import MySQLdb

conn = MySQLdb.connect(user='user', 
                       passwd='password', 
                       db='db_name', 
                       cursorclass=MySQLdb.cursors.DictCursor) 
cursor = conn.cursor()