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 <[email protected]> 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: > '[email protected] <%[email protected]>'} > > 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 <[email protected] <marmolro%20%[email protected]%3e>> > > *Reply-to*: La lista de python en castellano <[email protected]> > *Para*: La lista de python en castellano > <[email protected]<la%20lista%20de%20python%20en%20castellano%20%[email protected]%3e> > > > *Asunto*: Re: [Python-es] Buscar campo mysql > *Fecha*: Thu, 18 Feb 2010 22:55:51 +0100 > > > > > 2010/2/18 Rubén <[email protected]> > > 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 [email protected] y quitar "{mail_uno:", "}", o > que sólo me salga el valor [email protected] en "resu" > > Gracias de nuevo -sobre todo por la paciencia- y un saludo. > > > -------------------- > Rubén > http://foroubuntu.es > > > -----Mensaje original----- > *De*: RadicalEd > <[email protected]<radicaled%20%[email protected]%3e> > > > > *Reply-to*: La lista de python en castellano <[email protected]> > *Para*: La lista de python en castellano > <[email protected]<la%20lista%20de%20python%20en%20castellano%20%[email protected]%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 <[email protected]> > > Perdón, sí me imprime el resultado, pero no sólo el valor: {'mail_uno': > '[email protected] <%[email protected]>'} 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 > <[email protected]<%3d%3fiso-8859-1%3fq%3frub%3de9n%3f%3d%20%[email protected]%3e> > > > > *Reply-to*: La lista de python en castellano <[email protected]> > > *Para*: RadicalEd > <[email protected]<radicaled%20%[email protected]%3e> > > > *Cc*: La lista de python en castellano > <[email protected]<la%20lista%20de%20python%20en%20castellano%20%[email protected]%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 > <[email protected]<radicaled%20%[email protected]%3e> > > > *Para*: [email protected] > <[email protected]<%[email protected]%22%20%[email protected]%3e>>, > La lista de python en castellano > <[email protected]<la%20lista%20de%20python%20en%20castellano%20%[email protected]%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 [email protected] <[email protected]> > > > > >----Mensaje original---- > >De: [email protected] > >Fecha: 18/02/2010 1:12 > > >Para: "La lista de python en castellano"<[email protected]> > > >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 <[email protected] > > <mailto:% > 3d%3fiso-8859-1%3fq%3frub%3de9n%3f%3d%20%[email protected]<3d%253fiso-8859-1%253fq%253frub%253de9n%253f%253d%2520%[email protected]> > %3e>> > > *Reply-to*: La lista de python en castellano <[email protected]> > > *Para*: La lista de python en castellano <[email protected] > > <mailto: > la%20lista%20de%20python%20en%20castellano%20%[email protected]<la%2520lista%2520de%2520python%2520en%2520castellano%2520%[email protected]> > %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 <[email protected] > > <mailto:radicaled%20%[email protected]<radicaled%2520%[email protected]> > %3e>> > > *Reply-to*: La lista de python en castellano <[email protected]> > > *Para*: La lista de python en castellano <[email protected] > > <mailto: > la%20lista%20de%20python%20en%20castellano%20%[email protected]<la%2520lista%2520de%2520python%2520en%2520castellano%2520%[email protected]> > %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 <[email protected] <mailto:[email protected] > >> > > > > 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 > > [email protected] <mailto:[email protected]> > > 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 > > [email protected] <mailto:[email protected]> > > http://mail.python.org/mailman/listinfo/python-es > > FAQ:http://python-es-faq.wikidot.com/ > > _______________________________________________ > > Python-es mailing list > > [email protected] <mailto:[email protected]> > > http://mail.python.org/mailman/listinfo/python-es > > FAQ:http://python-es-faq.wikidot.com/ > > > > > > > > _______________________________________________ > > Python-es mailing list > > [email protected] > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > _______________________________________________ > Python-es mailing list > [email protected] > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > > > _______________________________________________ > Python-es mailing list > [email protected] > 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 > [email protected]http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > [email protected] > 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 > [email protected]http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > [email protected] > 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': '[email protected]'}['mail_uno'] '[email protected]' > > > > 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 > [email protected]http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > [email protected] > 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 list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
