首页 > 代码库 > cursor.MySQLCursorDict Class

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.

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))
 PREV   HOME   UP   NEXT 
 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 Section 10.6.4, “cursor.MySQLCursorDict Class”.

cursor.MySQLCursorDict Class