Python-MySQLdb中的DictCursor使用方法簡介
DictCursor的這個功能是繼承於CursorDictRowsMixIn,這個MixIn提供了3個額外的方法: fetchoneDict、fetchmanyDict、fetchallDict。
在默認情況下cursor方法返回的是BaseCursor類型對象,BaseCursor類型對象在執行查詢后每條記錄的結果以列表(list)表示。如果要返回字典(dict)表示的記錄,就要設置cursorclass參數為MySQLdb.cursors.DictCursor類。
cur = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
這個參數也可在調用connect方法建立連接時設置,如下:
>>> conn = MySQLdb.connect(host='192.168.1.103', port=3306, user='testacc', pass
wd='test1234', db='1dcq', cursorclass=MySQLdb.cursors.DictCursor)
>>>conn.close()
例子:
>>> import MySQLdb
>>> conn = MySQLdb.connect(host='192.168.1.103', port=3306, user='testacc', passwd='test1234', db='1dcq')
>>> cursor = conn.cursor()
>>> cursor.execute('SELECT * FROM pagesobject LIMIT 0, 1')
1L
>>> cursor.fetchone()
(1L, 0L, '???', 'true', None, 0)
>>> cursor.close()
對比實驗如下:
>>> cursor = conn.cursor(MySQLdb.cursors.DictCursor)
>>> cursor.execute('SELECT * FROM pagesobject LIMIT 0, 1')
1L
>>> cursor.fetchone() # 等價fetchoneDict()
{'PageDesc': None, 'P_Id': 0L, 'isParent': 0, 'Html_open': 'true', 'PageName': '???', 'Id': 1L}
>>> cursor.close()
>>>conn.close()