Utilizzo PyMySQL da un po 'di tempo e ho creato il mio wrapper che sono abituato a scrivere in modo sintetico per le query. Tuttavia ho creato file CSV con OrderedDict perché ho bisogno di mantenere l'ordine lo stesso, ma mi rendo conto che se utilizzo PyMySQL per interrogare il database, non otterrò l'ordine che il database restituisce. Questo è un po 'fastidioso per i file CSV di controllo spot se volevo semplicemente scaricare materiale anziché scrivere gli ordini.PyMySQL e OrderedDict
La mia domanda è, come utilizzo PyMySQL con OrderedDict? Attualmente il mio codice è il seguente:
import pymysql
conn = pymysql.connect(host='localhost', user='root', passwd='', db='test')
cursor = conn.cursor(pymysql.cursors.DictCursor)
Così ogni volta interrogo, sarò sempre un dizionario posteriore:
cursor.execute("""SELECT * FROM test""")
for row in cursor:
pp(row) # gives me dictionary
Quello che voglio è che quando mi rotolo attraverso cursore realtà sto recuperando un OrderedDict delle colonne nell'ordine in cui entrano dal database.
Qualcosa di simile:
cursor = conn.cursor(pymysql.cursors.OrderedDict)
aggiungi un altro colore mn che detiene, riga sorgente e ordine da quello quando si esegue una query? – Busturdust
@Busturdust - Potrei scrivere nel mio wrapper una funzione dire "query_ordered" o qualcosa che ha i campi selezionati in un elenco e quindi creare un generatore per ottenere ordinamento in sostituzione del dizionario ma se riesco ad ottenere una soluzione senza scriverlo e anche quello con il mio wrapper funzionerebbe bene, preferirei farlo. – DataHerder