cursor.MySQLCursorDict Class
5.9.6.4 cursor.MySQLCursorDict Class
The MySQLCursorDict class inherits from MySQLCursor. 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
==============
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 Section 10.6.4, “cursor.MySQLCursorDict Class”.
What Doesn't Kill Me Makes Me Stronger
浙公网安备 33010602011771号
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)))