2012-03-13 11 views
8

Soy nuevo en MySQLdb. Necesito leer los valores de una base de datos predefinida que se almacena en MySQL. Mi problema es cuando se recopilan los valores, están en formato de tupla, no en formato de cadena. Entonces mi pregunta es: ¿hay alguna manera de convertir tuple a string?Convertir MySQLdb devolver de tuple a cadena en Python

A continuación se presentan los detalles de mi código

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) 

La salida está en formato tupla "Koc = ('5',)", pero quiero "koc = 5". Entonces, ¿alguien puede darme algunas sugerencias o un libro de referencia que debería consultar?

¡Gracias de antemano!

Respuesta

18

Si solo va a recuperar un valor a la vez (es decir, obtener una columna con cursor.fetchone()), puede cambiar el código para obtener el primer elemento de la tupla.

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

¡Gracias! ¿Qué pasa si necesito recuperar más de un valor (podría tomar una fila a la vez)? –

+1

Desafortunadamente, la única forma de lidiar con eso es asignar valores manualmente a la tupla ('id = tuple [0]', 'col1 = tuple [1]', etc.). Sugeriría escribir una función de comando general de MySQL que envíe la consulta y devuelva una tupla. De esta forma, puede tratar la tupla devuelta más fácilmente donde lo necesite. –

+0

Gracias. También cualquier libro recomendado proyecto Python-MySQL? –