[Python-es] Buscar campo mysql

marmolro marmolro en gmail.com
Vie Feb 19 08:15:58 CET 2010


Pues te lo representaba como un dict :)

Este método de aprendizaje tampoco es malo y se usaba mucho hace unas
décadas (todavía tuve un profesor que lo utilizaba :) ). Eso sí, algo de
teoría básica hay que aprender antes de lanzarse al ruedo. Empieza por:

http://docs.python.org/tutorial/index.html

<http://docs.python.org/tutorial/index.html>Tienes todas las respuestas :)

Un saludo,

2010/2/19 Jose Caballero <jcaballero.hep en gmail.com>

> 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/
>>
>>
>
> _______________________________________________
> 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/20100219/00bd31a4/attachment.html>


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