Python mysql.connector -以字典形式检索行的正确方法

z4bn682m  于 2023-04-28  发布在  Python
关注(0)|答案(3)|浏览(154)

我有一个20列的表,我用这个代码来获取特定电影的每个字段作为字典:

import mysql.connector

def getMovie(id):
   movie = {}
   cnx = mysql.connector.connect(**config)
   cursor = cnx.cursor()
   query = ('SELECT * FROM movies WHERE id = %s') % id
   cursor.execute(query)
   for row in cursor:
      movie['id'] = row[0]
      movie['actors'] = row[1]
      movie['title'] = row[2]
      # and so on for 20 lines
    return movie

列名将是字典键。是否有更短的方法来存档相同的结果?20行变量真的很难看。...

lyr7nygr

lyr7nygr1#

您可以将dictionary=True传递给游标,使它返回字典。

cursor = cnx.cursor(dictionary=True)

参见docs on MySQLCursorDict

vbkedwbf

vbkedwbf2#

您可以使用zip将您的属性名称和值俱乐部为:

attribute_names = ["id", "actors", "title"]
values = [10, 20, 30] # row in your case
d = dict(zip(attribute_names, values))
zdwk9cvp

zdwk9cvp3#

cursor = cnx.cursor(dictionary=True)

不再工作,我们必须传递类DictCursor作为cnx的参数。游标

cursor = conn.cursor(pymysql.cursors.DictCursor)

相关问题