[Python-es] Buscar campo mysql

Jose Caballero jcaballero.hep en gmail.com
Vie Feb 19 01:44:10 CET 2010


No tengo claro que "ensayo y error" sea una buena forma de aprender. Pero
cada uno tiene su estilo.
Sólo te falta saber qué hacer con una tupla y ya lo tienes.




El 18 de febrero de 2010 19:23, Rubén <parraymartinez en terra.es> escribió:

>  Sí, creo que es la mejor forma de aprender...
>
> ¿Cómo lo haría entonces?
>
> Gracias y un saludo.
>
>
>   --------------------
> Rubén
> http://foroubuntu.es
>
>   -----Mensaje original-----
> *De*: Jose Caballero <jcaballero.hep en gmail.com<Jose%20Caballero%20%3cjcaballero.hep en gmail.com%3e>
> >
>
> *Reply-to*: La lista de python en castellano <python-es en python.org>
> *Para*: La lista de python en castellano <python-es en python.org<La%20lista%20de%20python%20en%20castellano%20%3cpython-es en python.org%3e>
> >
> *Asunto*: Re: [Python-es] Buscar campo mysql
> *Fecha*: Thu, 18 Feb 2010 19:05:31 -0500
>
>
>
> fetchone() devuelve una tupla, no un diccionario.
> Una pregunta, sólo por curiosidad, ¿te has puesto a programar eso sin saber
> absolutamente nada de python ni de SQL?
>
>
>
>
>
>
> El 18 de febrero de 2010 18:43, Rubén <parraymartinez en terra.es> escribió:
>
> Gracias malmolro,
>
> Llevo horas leyendo sobre los diccionarios en Python pero no hay manera. Lo
> he probado casi todo pero siempre me da algún error.
>
> Entiendo que en
>
>
> registro.execute("SELECT mail_uno FROM datos WHERE hostname = '%s'" %
> nombre.value)
>
>  resu = registro.fetchone()
> print repr(resu)
>
> Entiendo que "resu" vendría a ser el diccionario {mail_uno:
> 'correo en correo.com <%27correo en correo.com>'}
>
> Pero si pongo resu['mail_uno'] me da error. He leído lo que me has pasado y
> tropecientas páginas más pero no consigo sacar sólo la dirección de mail.
>
> PD: Perdón por la falta de netiqueta, pero si la seguimos a veces sí a
> veces no se hace ininteligible.
>
> Gracias sinceras por vuestra ayuda. Si sabéis por donde puedo buscar o cómo
> hacerlo... Estoy desesperado.
>
>
>
> Un saludo.
>
>   --------------------
> Rubén
> http://foroubuntu.es
>
>
>   -----Mensaje original-----
>
>  *De*: marmolro <marmolro en gmail.com <marmolro%20%3cmarmolro en gmail.com%3e>>
>
>
>
> *Reply-to*: La lista de python en castellano <python-es en python.org>
> *Para*: La lista de python en castellano <python-es en python.org<La%20lista%20de%20python%20en%20castellano%20%3cpython-es en python.org%3e>
> >
> *Asunto*: Re: [Python-es] Buscar campo mysql
>
>  *Fecha*: Thu, 18 Feb 2010 22:55:51 +0100
>
>
>
>
>
>
> 2010/2/18 Rubén <parraymartinez en terra.es>
>
> Perdón, me he colado... No quería decir array, no se porqué he puesto eso.
> Mil disculpas, no me he explicado nada bien;-)
>
> Me refería a dejar sólo correo en correo.com y quitar "{mail_uno:", "}", o
> que sólo me salga el valor corre en correo.com en "resu"
>
> Gracias de nuevo -sobre todo por la paciencia- y un saludo.
>
>
>   --------------------
> Rubén
> http://foroubuntu.es
>
>
>
>   -----Mensaje original-----
> *De*: RadicalEd <willian.radicaled en gmail.com<RadicalEd%20%3cwillian.radicaled en gmail.com%3e>
> >
>
> *Reply-to*: La lista de python en castellano <python-es en python.org>
> *Para*: La lista de python en castellano <python-es en python.org<La%20lista%20de%20python%20en%20castellano%20%3cpython-es en python.org%3e>
> >
>
> *Asunto*: Re: [Python-es] Buscar campo mysql
>
> *Fecha*: Thu, 18 Feb 2010 15:51:31 -0500
>
>
>
> En python no existen los arrays, se llaman listas, si quieres agregar un
> valor a una lista primero debes crearla y luego irle asignando valores, me
> imágino que recorres tú tupla por un for entonces lo harías algo así:
>
> lista = []
> for h in range(1, 10):
>     lista.append(h)
>
> Solo cambia el h por tú registro de correo.
>
>
> 2010/2/18 Rubén <parraymartinez en terra.es>
>
> Perdón, sí me imprime el resultado, pero no sólo el valor: {'mail_uno':
> 'correo en correo.com <%27correo en correo.com>'} Bueno, ¡voy avanzado!
>
> ¿Cómo hago para hacer un array con sólo la dirección de mail?
>
>
> ¡Muchas gracias!
>
>   --------------------
> Rubén
> http://foroubuntu.es
>
>
>
>
>   -----Mensaje original-----
>
> *De*: Rubén <parraymartinez en terra.es<%3d%3fISO-8859-1%3fQ%3fRub%3dE9n%3f%3d%20%3cparraymartinez en terra.es%3e>
> >
>
> *Reply-to*: La lista de python en castellano <python-es en python.org>
>
> *Para*: RadicalEd <willian.radicaled en gmail.com<RadicalEd%20%3cwillian.radicaled en gmail.com%3e>
> >
> *Cc*: La lista de python en castellano <python-es en python.org<La%20lista%20de%20python%20en%20castellano%20%3cpython-es en python.org%3e>
> >
>
> *Asunto*: Re: [Python-es] Buscar campo mysql
>
> *Fecha*: Thu, 18 Feb 2010 20:37:32 +0100
>
>
>
> Gracias, RadicalED
>
> Ahora no me da error, pero al imprimir en pantalla con resu =
> registro.fetchall()  print repr(resu) no me aparece el valor del campo sino
> (). Si cambio fetchall por fetchone me aparece None
>
> Sigo haciendo algo mal...
>
>   --------------------
> Rubén
> http://foroubuntu.es
>
>
>
>
>
>   -----Mensaje original-----
> *De*: RadicalEd <willian.radicaled en gmail.com<RadicalEd%20%3cwillian.radicaled en gmail.com%3e>
> >
> *Para*: parraymartinez en terra.es <parraymartinez en terra.es<%22parraymartinez en terra.es%22%20%3cparraymartinez en terra.es%3e>>,
> La lista de python en castellano <python-es en python.org<La%20lista%20de%20python%20en%20castellano%20%3cpython-es en python.org%3e>
> >
> *Asunto*: Re: [Python-es] Buscar campo mysql
> *Fecha*: Thu, 18 Feb 2010 13:58:37 -0500
>
> registro.execute("SELECT mail_uno FROM datos WHERE hostname = '%s'" %
> nombre.value)
>
> 2010/2/18 parraymartinez en terra.es <parraymartinez en terra.es>
>
>
>
> >----Mensaje original----
> >De: damufo en gmail.com
> >Fecha: 18/02/2010 1:12
>
> >Para: "La lista de python en castellano"<python-es en python.org>
>
> >Asunto: Re: [Python-es] Buscar campo mysql
> >
>
> >Será que tienes que comparar con algo el campo hostname (en el where) ?
> >  registro.execute("SELECT mail_uno FROM datos WHERE hostname='algo???'")
>
>
>
> Me da otro error con el siguiente código:
>
> registro.execute("SELECT mail_uno FROM datos WHERE hostname =
> nombre.value") #Donde nombre.value es el hostname sacado del MS Excel
>
> resu = registro.fetchall()
> print repr(resu)
>
>
> Éste es el error:
>
> /*Traceback (most recent call last):
>   File "exceltux", line 69, in <module>
>     registro.execute("SELECT mail_uno FROM datos WHERE hostname =
> nombre.value")
>   File "/var/lib/python-support/python2.6/MySQLdb/cursors.py", line 166, in
> execute
>     self.errorhandler(self, exc, value)
>   File "/var/lib/python-support/python2.6/MySQLdb/connections.py", line 35,
> in defaulterrorhandler
>     raise errorclass, errorvalue
> _mysql_exceptions.OperationalError: (1054, "Unknown column 'nombre.value'
> in 'where clause'") */
>
> Si  nombre.value lo entrecomillo 'nombre.value' me imprime en pantalla
> "None"
>
> He buscado el error por internet pero no saco nada en claro.....
>
>
>
>
>
> >En 2010/02/18 00:53, Rubén escribiu:
> > Me da el siguiente error:
> >
> > registro.execute("SELECT mail_uno FROM datos WHERE hostname")
> > exceltux:38: Warning: Truncated incorrect INTEGER value: HOSTNAME01
> >
> > ¿A que puede ser debido?
> >
> > Un saludo.
> > --------------------
> > Rubén
> > http://foroubuntu.es
> >
> > -----Mensaje original-----
> > *De*: Rubén <parraymartinez en terra.es
> > <mailto:%
> 3d%3fISO-8859-1%3fQ%3fRub%3dE9n%3f%3d%20%3cparraymartinez en terra.es<3d%253fISO-8859-1%253fQ%253fRub%253dE9n%253f%253d%2520%253cparraymartinez en terra.es>
> %3e>>
> > *Reply-to*: La lista de python en castellano <python-es en python.org>
> > *Para*: La lista de python en castellano <python-es en python.org
> > <mailto:
> La%20lista%20de%20python%20en%20castellano%20%3cpython-es en python.org<La%2520lista%2520de%2520python%2520en%2520castellano%2520%253cpython-es en python.org>
> %3e>>
> > *Asunto*: Re: [Python-es] Buscar campo mysql
> > *Fecha*: Wed, 17 Feb 2010 22:53:32 +0100
> >
> > Gracias por tu respuesta.
> >
> > Entiendo entonces que por donde tengo que tirar es por el SELECT de
> mysql.
> >
> > Lo pruebo y os cuento.
> >
> > ¡Muchas gracias!
> >
> > --------------------
> > Rubén
> > http://foroubuntu.es
> >
> >
> > -----Mensaje original-----
> > *De*: RadicalEd <willian.radicaled en gmail.com
> > <mailto:RadicalEd%20%3cwillian.radicaled en gmail.com<RadicalEd%2520%253cwillian.radicaled en gmail.com>
> %3e>>
> > *Reply-to*: La lista de python en castellano <python-es en python.org>
> > *Para*: La lista de python en castellano <python-es en python.org
> > <mailto:
> La%20lista%20de%20python%20en%20castellano%20%3cpython-es en python.org<La%2520lista%2520de%2520python%2520en%2520castellano%2520%253cpython-es en python.org>
> %3e>>
> > *Asunto*: Re: [Python-es] Buscar campo mysql
> > *Fecha*: Wed, 17 Feb 2010 16:41:18 -0500
> >
> > Segun te entiendo lo que debes hacer es una consulta SQL condicional
> >
> > SELECT email FROM datos WHERE hostname='DATO EXTRAIDO DEL ARCHIVO DE
> EXCEL'
> >
> > 2010/2/17 Rubén <parraymartinez en terra.es <mailto:parraymartinez en terra.es
> >>
> >
> >     Buenas lista,
> >
> >     Estoy liado con un programa y he llegado a un punto muerto.
> >
> >     El programa lee de un archivo de MS Excel dos columnas: una que
> >     viene el hostname de un equipo y otra una condición, llamémosla n.
> >     Por otra parte tengo una tabla en mysql con un campo para el
> >     hostname y otra para una dirección de mail asociada a la que se
> >     tiene que enviar un correo.
> >
> >     La cosa está en que llego a sacar los campos de la base de datos
> >     como un diccionario pero sin clave:
> >
> >     registro.execute("SELECT * FROM datos")
> >     resu = registro.fetchall()
> >     print repr(resu)
> >
> >     Lo que busco es la manera de que si en el excel se cumple la
> >     condición n en cierto hostname, poder sacar como char la dirección
> >     de mail de la base de datos asociada a ese mismo hostname.
> >
> >     Lo de la lectura del MS Excel y el envío del correo lo tengo
> >     solucionado.
> >
> >     ¿Alguna idea de por donde puedo tirar?
> >
> >     Gracias por vuestra ayuda y un saludo.
> >
> >     --------------------
> >     Rubén
> >     http://foroubuntu.es
> >
> >
> >
> >
> >     _______________________________________________
> >     Python-es mailing list
> >     Python-es en python.org <mailto:Python-es en python.org>
> >     http://mail.python.org/mailman/listinfo/python-es
> >     FAQ: http://python-es-faq.wikidot.com/
> >
> >
> >
> >
> > --
> > The past are just memories, the future are just dreams!!!
> > http://foros.solocodigo.com
> > http://radicalpython.blogspot.com
> > http://revistacodigolatino.blogspot.com
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org  <mailto:Python-es en python.org>
> > http://mail.python.org/mailman/listinfo/python-es
> > FAQ:http://python-es-faq.wikidot.com/
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org  <mailto:Python-es en python.org>
> > http://mail.python.org/mailman/listinfo/python-es
> > FAQ:http://python-es-faq.wikidot.com/
> >
> >
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org
> > http://mail.python.org/mailman/listinfo/python-es
> > FAQ: http://python-es-faq.wikidot.com/
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> --
> The past are just memories, the future are just dreams!!!
> http://foros.solocodigo.com
> http://radicalpython.blogspot.com
> http://revistacodigolatino.blogspot.com
>
> _______________________________________________
> Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> --
> The past are just memories, the future are just dreams!!!
> http://foros.solocodigo.com
> http://radicalpython.blogspot.com
> http://revistacodigolatino.blogspot.com
>
> _______________________________________________
> Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> Lo que tienes entre manos es un diccionario, por lo que para acceder al
> valor lo haces por la clave:
>
> >>> {'mail_uno': 'correo en correo.com'}['mail_uno'] 'correo en correo.com'
>
>
>
> Un poco de lectura no viene mal:
> http://docs.python.org/tutorial/datastructures.html#dictionaries
> http://es.wikipedia.org/wiki/SQL
>
> Un saludo,
>
> _______________________________________________
> Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
> --
> Insurrection is an art, and like all arts has its own laws. Leon Trotsky
>
> _______________________________________________
> Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100218/a250690d/attachment.html>


Más información sobre la lista de distribución Python-es