5.9.6.4 cursor.MySQLCursorDict Class
The MySQLCursorDict
class inherits from . This class is available as of Connector/Python 2.0.0.
A MySQLCursorDict
cursor returns each row as a dictionary. The keys for each dictionary object are the column names of the MySQL result.
Example:
cnx = mysql.connector.connect(database='world')cursor = cnx.cursor(dictionary=True)cursor.execute("SELECT * FROM country WHERE Continent = 'Europe'")print("Countries in Europe:")for row in cursor: print("* {Name}".format(Name=row['Name']
The preceding code produces output like this:
Countries in Europe:* Albania* Andorra* Austria* Belgium* Bulgaria...
It may be convenient to pass the dictionary to format()
as follows:
cursor.execute("SELECT Name, Population FROM country WHERE Continent = 'Europe'")print("Countries in Europe with population:")for row in cursor: print("* {Name}: {Population}".format(**row))
User Comments
Posted by blair gemmer on December 15, 2014
If you want to use stored procedures, please use this format: cursor.callproc(stored_procedure_name, args) result = [] for recordset in cursor.stored_results(): for row in recordset: result.append(dict(zip(recordset.column_names,row)))
==============
10.5.11 MySQLCursor.column_names Property
Syntax:
sequence = cursor.column_names
This read-only property returns the column names of a result set as sequence of Unicode strings.
The following example shows how to create a dictionary from a tuple containing data with keys using column_names
:
cursor.execute("SELECT last_name, first_name, hire_date " "FROM employees WHERE emp_no = %s", (123,))row = dict(zip(cursor.column_names, cursor.fetchone()))print("{last_name}, {first_name}: {hire_date}".format(row))
Alternatively, as of Connector/Python 2.0.0, you can fetch rows as dictionaries directly; see .