首先我们需要了解在Python中查询Mysql时通常返回的结果是一个元组,它包含查询结果的所有行,每行都是一个由查询字段组成的tuple对象。如果我们希望查询结果以字典的形式返回,那么可以使用MySQLdb模块提供的DictCursor游标。
下面是使用DictCursor查询MySQL返回字典结果的代码:
import MySQLdb
# 连接数据库
conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test', charset='utf8')
# 获取游标
cursor = conn.cursor(MySQLdb.cursors.DictCursor)
# 执行查询
cursor.execute('SELECT * FROM students')
# 获取查询结果
result = cursor.fetchall()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
# 打印查询结果
for row in result:
print(row['id'], row['name'], row['age'])
以上代码中,我们使用MySQLdb模块连接到本机的MySQL数据库,然后使用DictCursor游标执行查询,并使用fetchall()
方法获取查询结果,最后关闭游标和连接,并循环打印查询结果的每一行,每行以字典的形式进行访问。
下面再给出一个带有查询条件的示例代码:
import MySQLdb
# 连接数据库
conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test', charset='utf8')
# 获取游标
cursor = conn.cursor(MySQLdb.cursors.DictCursor)
# 执行带参数的查询
cursor.execute('SELECT * FROM students WHERE age > %s', (20,))
# 获取查询结果
result = cursor.fetchall()
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
# 打印查询结果
for row in result:
print(row['id'], row['name'], row['age'])
以上代码中,我们添加了一个带有查询条件的查询语句,并使用占位符(%s)代替了查询条件中的具体数值,并在execute()
方法的第二个参数中传递具体的查询条件(这里我们查询年龄大于20岁的学生),其余代码与前一个示例相同,可以得到查询结果以字典的形式返回的结果。
总之,使用DictCursor游标可以很方便地将MySQL的查询结果以字典的形式进行访问,从而提高代码的可读性和易用性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python查询Mysql时返回字典结构的代码 - Python技术站