2012-03-13 3 views
8

Sono nuovo in MySQLdb. Ho bisogno di leggere i valori da un database predefinito che è memorizzato in MySQL. Il mio problema è quando i valori vengono raccolti, sono in formato tupla, non in formato stringa. Quindi la mia domanda: c'è un modo per convertire la tupla in stringa?Convertire il ritorno di MySQLdb da tupla a stringa in Python

Qui di seguito sono i dettagli del mio codice

import MySQLdb 

#get value from database 
conn = MySQLdb.connect("localhost", "root", "123", "book") 
cursor = conn.cursor() 
cursor.execute("SELECT koc FROM entries") 
Koc_pre = str(cursor.fetchone()) 

#create a input form by Django and assign pre-defined value 
class Inp(forms.Form): 
    Koc = forms.FloatField(required=True,label=mark_safe('K<sub>OC</sub> (mL/g OC)'),initial=Koc_pre) 

#write out this input form 
class InputPage(webapp.RequestHandler): 
    def get(self): 
     html = str(Inp()) 
     self.response.out.write(html) 

L'output è in formato tupla "Koc = ('5',)", ma io voglio "koc = 5". Quindi qualcuno può darmi qualche suggerimento o un libro di riferimento che dovrei controllare?

Grazie in anticipo!

risposta

18

Se si sta recuperando un solo valore alla volta (cioè ottenendo una colonna utilizzando cursor.fetchone()), è possibile semplicemente modificare il codice in modo da ottenere il primo elemento nella tupla.

Koc_pre = str(cursor.fetchone()[0]) 
+0

Grazie! Cosa succede se ho bisogno di recuperare più di un valore (potrei prendere una riga alla volta)? –

+1

Sfortunatamente, l'unico modo per affrontarlo è assegnare manualmente i valori alla tupla ('id = tupla [0]', 'col1 = tuple [1]', ecc.). Suggerirei di scrivere una funzione di comando generale MySQL che inoltra la query e restituisce una tupla. In questo modo puoi gestire la tupla restituita più facilmente dove è necessario. –

+0

Grazie. Anche qualche progetto di libri Python-MySQL consigliato? –