2017-02-10 1 views
0

Я таблицу с 20 столбцами, я использую этот код, чтобы получить все поля конкретного фильма в качестве словаря:Python mysql.connector - Правильный способ retrive строки в словаре

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 строк переменных действительно плохо выглядят ....

ответ

1

Вы можете передать dictionary=True курсору, чтобы получить его, чтобы вернуть словарь.

cursor = cnx.cursor(dictionary=True) 

См. docs on MySQLCursorDict.

0

Вы можете использовать zip в клуб ваши имена атрибутов и значения, как:

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