From lemarchand8679 en gmail.com Mon Aug 3 15:01:55 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Mon, 3 Aug 2020 16:01:55 -0300 Subject: [Python-es] [Consulta] lista .index() Message-ID: Buenas tardes, les hago una consulta. Sigo jugando con el archivo csv, en este caso lo que hice fue crear una lista llamada laboratorios la cual contiene el nombre de todos los laboratorios que figuran en el archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el nombre del laboratorio y vi que se usa index() para conocer la posición de un valor contenido en la lista. Entonces decidí probar ingresando el nombre de un laboratorio para ver si me da el índice: leer = pd.read_csv('gavade.csv') laboratorios = [] for lab in leer.iloc[0:8122, 4]: laboratorios.append(lab) lab = input("Ingrese nombre del laboratorio: ") print(laboratorios.index(lab)) Cuando ejecuto se ve así: Ingrese nombre del laboratorio: Alcon 58 La cuestión es que en la posición 58, no figura el laboratorio que ingresé. El orden es así: 58 Abbott EPD 59 Abbott EPD 60 Alcon 61 Alcon No entiendo, estoy usando mal la función o no se ajusta a lo que necesito? Qué estoy haciendo mal? Muchas gracias, saludos From mlacunza en gmail.com Mon Aug 3 15:07:48 2020 From: mlacunza en gmail.com (Mario Lacunza) Date: Mon, 3 Aug 2020 14:07:48 -0500 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Prueba con 57 Mario Lacunza Enviado desde mi celular El lun., 3 de ago. de 2020 14:03, Lemarchand Barker < lemarchand8679 en gmail.com> escribió: > Buenas tardes, les hago una consulta. Sigo jugando con el archivo csv, > en este caso lo que hice fue crear una lista llamada laboratorios la > cual contiene el nombre de todos los laboratorios que figuran en el > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el > nombre del laboratorio y vi que se usa index() para conocer la > posición de un valor contenido en la lista. Entonces decidí probar > ingresando el nombre de un laboratorio para ver si me da el índice: > > leer = pd.read_csv('gavade.csv') > > laboratorios = [] > > for lab in leer.iloc[0:8122, 4]: > laboratorios.append(lab) > > lab = input("Ingrese nombre del laboratorio: ") > print(laboratorios.index(lab)) > > Cuando ejecuto se ve así: > > Ingrese nombre del laboratorio: Alcon > 58 > > La cuestión es que en la posición 58, no figura el laboratorio que > ingresé. El orden es así: > 58 Abbott EPD > 59 Abbott EPD > 60 Alcon > 61 Alcon > > No entiendo, estoy usando mal la función o no se ajusta a lo que > necesito? Qué estoy haciendo mal? > Muchas gracias, saludos > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ricardo.cardenes en gmail.com Mon Aug 3 15:44:37 2020 From: ricardo.cardenes en gmail.com (=?UTF-8?Q?Ricardo_C=C3=A1rdenes?=) Date: Mon, 3 Aug 2020 09:44:37 -1000 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: No podemos tener ni idea de la razón por la que te pasa esto, porque no te vemos el resto de tus datos. *Aparentemente* *el número de laboratorio va incluido en el listado*. Ideas que pueden contribuir: - Tu listado empieza en "1". Ten en cuenta que los índices de las estructuras de Python empiezan en "0". Por tanto, en ese caso, tu "58" realmente se referiría a la posición "59" (contando desde 1) - Tu listado tiene huecos. Si falta un número en la secuencia de los asignados a los laboratorios, combinado con lo anterior, ya explicaría por qué obtienes 58 en lugar de 60 Solución: *no uses .index* para esto. Si el número de laboratorio aparece en el listado, en la misma fila, *captúralo al mismo tiempo que el nombre*. On Mon, Aug 3, 2020 at 9:02 AM Lemarchand Barker wrote: > Buenas tardes, les hago una consulta. Sigo jugando con el archivo csv, > en este caso lo que hice fue crear una lista llamada laboratorios la > cual contiene el nombre de todos los laboratorios que figuran en el > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el > nombre del laboratorio y vi que se usa index() para conocer la > posición de un valor contenido en la lista. Entonces decidí probar > ingresando el nombre de un laboratorio para ver si me da el índice: > > leer = pd.read_csv('gavade.csv') > > laboratorios = [] > > for lab in leer.iloc[0:8122, 4]: > laboratorios.append(lab) > > lab = input("Ingrese nombre del laboratorio: ") > print(laboratorios.index(lab)) > > Cuando ejecuto se ve así: > > Ingrese nombre del laboratorio: Alcon > 58 > > La cuestión es que en la posición 58, no figura el laboratorio que > ingresé. El orden es así: > 58 Abbott EPD > 59 Abbott EPD > 60 Alcon > 61 Alcon > > No entiendo, estoy usando mal la función o no se ajusta a lo que > necesito? Qué estoy haciendo mal? > Muchas gracias, saludos > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From darioslc en protonmail.com Mon Aug 3 15:46:14 2020 From: darioslc en protonmail.com (=?utf-8?Q?Dar=C3=ADo?=) Date: Mon, 03 Aug 2020 19:46:14 +0000 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Hola, a ver si entiendo lo que quisieras que haga. Ingresás un laboratorio, y que muestre la posición y el nombre del laboratorio en la misma línea (o los laboratorios) pero sólo obtenés el índice? PD: nunca voy a entender la necesidad o necedad de responder sin responder, ¡hay que tener ganas! - Sent with ProtonMail Secure Email. ??????? Original Message ??????? On Monday, 3 de August de 2020 16:01, Lemarchand Barker wrote: > Buenas tardes, les hago una consulta. Sigo jugando con el archivo csv, > en este caso lo que hice fue crear una lista llamada laboratorios la > cual contiene el nombre de todos los laboratorios que figuran en el > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el > nombre del laboratorio y vi que se usa index() para conocer la > posición de un valor contenido en la lista. Entonces decidí probar > ingresando el nombre de un laboratorio para ver si me da el índice: > > leer = pd.read_csv('gavade.csv') > > laboratorios = [] > > for lab in leer.iloc[0:8122, 4]: > laboratorios.append(lab) > > lab = input("Ingrese nombre del laboratorio: ") > print(laboratorios.index(lab)) > > Cuando ejecuto se ve así: > > Ingrese nombre del laboratorio: Alcon > 58 > > La cuestión es que en la posición 58, no figura el laboratorio que > ingresé. El orden es así: > 58 Abbott EPD > 59 Abbott EPD > 60 Alcon > 61 Alcon > > No entiendo, estoy usando mal la función o no se ajusta a lo que > necesito? Qué estoy haciendo mal? > Muchas gracias, saludos > > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es From lemarchand8679 en gmail.com Mon Aug 3 16:51:42 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Mon, 3 Aug 2020 17:51:42 -0300 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Parece que no pasó el mail. El csv se lee perfecto y la primer columna de la izquierda que sería el índice está ordenado, el único valor que es el código de cada uno de los medicamentos es el que va cambiando y no necesariamente es consecutivo, pero se los puede ordenar de menor a mayor que así es como figura. Pero el valor del índice, el que empieza con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el índice que me da de resultado no coincide con el que figura en el csv. Gracias, saludos El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es () escribió: > > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un laboratorio, y que muestre la posición y el nombre del laboratorio en la misma línea (o los laboratorios) pero sólo obtenés el índice? > > > > PD: nunca voy a entender la necesidad o necedad de responder sin responder, ¡hay que tener ganas! > > > - > > Sent with ProtonMail Secure Email. > > ??????? Original Message ??????? > On Monday, 3 de August de 2020 16:01, Lemarchand Barker wrote: > > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo csv, > > en este caso lo que hice fue crear una lista llamada laboratorios la > > cual contiene el nombre de todos los laboratorios que figuran en el > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el > > nombre del laboratorio y vi que se usa index() para conocer la > > posición de un valor contenido en la lista. Entonces decidí probar > > ingresando el nombre de un laboratorio para ver si me da el índice: > > > > leer = pd.read_csv('gavade.csv') > > > > laboratorios = [] > > > > for lab in leer.iloc[0:8122, 4]: > > laboratorios.append(lab) > > > > lab = input("Ingrese nombre del laboratorio: ") > > print(laboratorios.index(lab)) > > > > Cuando ejecuto se ve así: > > > > Ingrese nombre del laboratorio: Alcon > > 58 > > > > La cuestión es que en la posición 58, no figura el laboratorio que > > ingresé. El orden es así: > > 58 Abbott EPD > > 59 Abbott EPD > > 60 Alcon > > 61 Alcon > > > > No entiendo, estoy usando mal la función o no se ajusta a lo que > > necesito? Qué estoy haciendo mal? > > Muchas gracias, saludos > > > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es From lemarchand8679 en gmail.com Mon Aug 3 16:28:04 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Mon, 3 Aug 2020 17:28:04 -0300 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Hola adjunto 2 capturas de pantalla para que vean más o menos el listado. En realidad estoy probando esto porque; como mencioné antes estoy jugando con esto. Mi idea es buscar los laboratorios que empiezan con las distintas letras, ya que por ejemplo un mismo laboratorio figura de 2 formas: 1) Abbott Diabetes 2) Abbott EPD Y esto pasa con algunos otros laboratorios más, entonces por ejemplo si no me acuerdo a qué Bayer se refiere determinado medicamento me muestre las 2 opciones: 1) Bayer (PH) 2) Bayer Consumer Se entiende? Gracias, saludos El lun., 3 ago. 2020 a las 16:45, Ricardo Cárdenes () escribió: > > No podemos tener ni idea de la razón por la que te pasa esto, porque no te vemos el resto de tus datos. Aparentemente el número de laboratorio va incluido en el listado. Ideas que pueden contribuir: > > Tu listado empieza en "1". Ten en cuenta que los índices de las estructuras de Python empiezan en "0". Por tanto, en ese caso, tu "58" realmente se referiría a la posición "59" (contando desde 1) > Tu listado tiene huecos. Si falta un número en la secuencia de los asignados a los laboratorios, combinado con lo anterior, ya explicaría por qué obtienes 58 en lugar de 60 > > Solución: no uses .index para esto. Si el número de laboratorio aparece en el listado, en la misma fila, captúralo al mismo tiempo que el nombre. > > On Mon, Aug 3, 2020 at 9:02 AM Lemarchand Barker wrote: >> >> Buenas tardes, les hago una consulta. Sigo jugando con el archivo csv, >> en este caso lo que hice fue crear una lista llamada laboratorios la >> cual contiene el nombre de todos los laboratorios que figuran en el >> archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el >> nombre del laboratorio y vi que se usa index() para conocer la >> posición de un valor contenido en la lista. Entonces decidí probar >> ingresando el nombre de un laboratorio para ver si me da el índice: >> >> leer = pd.read_csv('gavade.csv') >> >> laboratorios = [] >> >> for lab in leer.iloc[0:8122, 4]: >> laboratorios.append(lab) >> >> lab = input("Ingrese nombre del laboratorio: ") >> print(laboratorios.index(lab)) >> >> Cuando ejecuto se ve así: >> >> Ingrese nombre del laboratorio: Alcon >> 58 >> >> La cuestión es que en la posición 58, no figura el laboratorio que >> ingresé. El orden es así: >> 58 Abbott EPD >> 59 Abbott EPD >> 60 Alcon >> 61 Alcon >> >> No entiendo, estoy usando mal la función o no se ajusta a lo que >> necesito? Qué estoy haciendo mal? >> Muchas gracias, saludos >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es ------------ próxima parte ------------ Se ha borrado un mensaje adjunto que no está en formato texto plano... Nombre : img2.png Tipo : image/png Tamaño : 122699 bytes Descripción: no disponible Url : ------------ próxima parte ------------ Se ha borrado un mensaje adjunto que no está en formato texto plano... Nombre : img.png Tipo : image/png Tamaño : 315696 bytes Descripción: no disponible Url : From david.suarez en yahoo.com Mon Aug 3 19:12:29 2020 From: david.suarez en yahoo.com (=?UTF-8?Q?David_Su=C3=A1rez?=) Date: Mon, 3 Aug 2020 18:12:29 -0500 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Hola, para ayudarte sería útil que nos compartieras al menos un fragmento de la tabla, pero de entrada pienso que podrías jugar un poco con el argumento *index_col* de read_csv y que en lugar de crear una lista con los nombres de los laboratorios uses directamente el DataFrame de pandas para obtener los datos. Es difícil sin conocer la estructura de tus datos, pero algo así como el siguiente código podría serte útil: >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un vector lógico con True en aquellas posiciones donde el dato coincida con "Alcon" >>> leer.Indice[posiciones] # Esto te devuelve un vector con los índices (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo equivalente a la lista [60, 61, ...] Haz la prueba y creo que si checas todas las prestaciones de Pandas ya no querrás usar .index() Saludos y espero que esto te ayude, David El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker ( lemarchand8679 en gmail.com) escribió: > Parece que no pasó el mail. El csv se lee perfecto y la primer columna > de la izquierda que sería el índice está ordenado, el único valor que > es el código de cada uno de los medicamentos es el que va cambiando y > no necesariamente es consecutivo, pero se los puede ordenar de menor a > mayor que así es como figura. Pero el valor del índice, el que empieza > con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el > índice que me da de resultado no coincide con el que figura en el csv. > Gracias, saludos > > El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es > () escribió: > > > > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un > laboratorio, y que muestre la posición y el nombre del laboratorio en la > misma línea (o los laboratorios) pero sólo obtenés el índice? > > > > > > > > PD: nunca voy a entender la necesidad o necedad de responder sin > responder, ¡hay que tener ganas! > > > > > > - > > > > Sent with ProtonMail Secure Email. > > > > ??????? Original Message ??????? > > On Monday, 3 de August de 2020 16:01, Lemarchand Barker < > lemarchand8679 en gmail.com> wrote: > > > > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo csv, > > > en este caso lo que hice fue crear una lista llamada laboratorios la > > > cual contiene el nombre de todos los laboratorios que figuran en el > > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el > > > nombre del laboratorio y vi que se usa index() para conocer la > > > posición de un valor contenido en la lista. Entonces decidí probar > > > ingresando el nombre de un laboratorio para ver si me da el índice: > > > > > > leer = pd.read_csv('gavade.csv') > > > > > > laboratorios = [] > > > > > > for lab in leer.iloc[0:8122, 4]: > > > laboratorios.append(lab) > > > > > > lab = input("Ingrese nombre del laboratorio: ") > > > print(laboratorios.index(lab)) > > > > > > Cuando ejecuto se ve así: > > > > > > Ingrese nombre del laboratorio: Alcon > > > 58 > > > > > > La cuestión es que en la posición 58, no figura el laboratorio que > > > ingresé. El orden es así: > > > 58 Abbott EPD > > > 59 Abbott EPD > > > 60 Alcon > > > 61 Alcon > > > > > > No entiendo, estoy usando mal la función o no se ajusta a lo que > > > necesito? Qué estoy haciendo mal? > > > Muchas gracias, saludos > > > > > > Python-es mailing list > > > Python-es en python.org > > > https://mail.python.org/mailman/listinfo/python-es > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Mon Aug 3 19:41:17 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Mon, 3 Aug 2020 20:41:17 -0300 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Hice un leve intento de usar DataFrame, me costó un poco pero supongo que debo sentarme y practicar más el tema de pandas. Voy a probar lo que me dijiste. Dejo link dónde está el csv: gavade.csv Muchas gracias El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (< python-es en python.org>) escribió: > Hola, > > para ayudarte sería útil que nos compartieras al menos un fragmento de la > tabla, pero de entrada pienso que podrías jugar un poco con el argumento > *index_col* de read_csv y que en lugar de crear una lista con los nombres > de los laboratorios uses directamente el DataFrame de pandas para obtener > los datos. > > Es difícil sin conocer la estructura de tus datos, pero algo así como el > siguiente código podría serte útil: > >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un vector > lógico con True en aquellas posiciones donde el dato coincida con "Alcon" > >>> leer.Indice[posiciones] # Esto te devuelve un vector con los índices > (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo > equivalente a la lista [60, 61, ...] > > Haz la prueba y creo que si checas todas las prestaciones de Pandas ya no > querrás usar .index() > > Saludos y espero que esto te ayude, > David > > El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker ( > lemarchand8679 en gmail.com) escribió: > >> Parece que no pasó el mail. El csv se lee perfecto y la primer columna >> de la izquierda que sería el índice está ordenado, el único valor que >> es el código de cada uno de los medicamentos es el que va cambiando y >> no necesariamente es consecutivo, pero se los puede ordenar de menor a >> mayor que así es como figura. Pero el valor del índice, el que empieza >> con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el >> índice que me da de resultado no coincide con el que figura en el csv. >> Gracias, saludos >> >> El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es >> () escribió: >> > >> > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un >> laboratorio, y que muestre la posición y el nombre del laboratorio en la >> misma línea (o los laboratorios) pero sólo obtenés el índice? >> > >> > >> > >> > PD: nunca voy a entender la necesidad o necedad de responder sin >> responder, ¡hay que tener ganas! >> > >> > >> > - >> > >> > Sent with ProtonMail Secure Email. >> > >> > ??????? Original Message ??????? >> > On Monday, 3 de August de 2020 16:01, Lemarchand Barker < >> lemarchand8679 en gmail.com> wrote: >> > >> > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo csv, >> > > en este caso lo que hice fue crear una lista llamada laboratorios la >> > > cual contiene el nombre de todos los laboratorios que figuran en el >> > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el >> > > nombre del laboratorio y vi que se usa index() para conocer la >> > > posición de un valor contenido en la lista. Entonces decidí probar >> > > ingresando el nombre de un laboratorio para ver si me da el índice: >> > > >> > > leer = pd.read_csv('gavade.csv') >> > > >> > > laboratorios = [] >> > > >> > > for lab in leer.iloc[0:8122, 4]: >> > > laboratorios.append(lab) >> > > >> > > lab = input("Ingrese nombre del laboratorio: ") >> > > print(laboratorios.index(lab)) >> > > >> > > Cuando ejecuto se ve así: >> > > >> > > Ingrese nombre del laboratorio: Alcon >> > > 58 >> > > >> > > La cuestión es que en la posición 58, no figura el laboratorio que >> > > ingresé. El orden es así: >> > > 58 Abbott EPD >> > > 59 Abbott EPD >> > > 60 Alcon >> > > 61 Alcon >> > > >> > > No entiendo, estoy usando mal la función o no se ajusta a lo que >> > > necesito? Qué estoy haciendo mal? >> > > Muchas gracias, saludos >> > > >> > > Python-es mailing list >> > > Python-es en python.org >> > > https://mail.python.org/mailman/listinfo/python-es >> > >> > >> > _______________________________________________ >> > Python-es mailing list >> > Python-es en python.org >> > https://mail.python.org/mailman/listinfo/python-es >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From david.suarez en yahoo.com Mon Aug 3 21:54:35 2020 From: david.suarez en yahoo.com (=?UTF-8?Q?David_Su=C3=A1rez?=) Date: Mon, 3 Aug 2020 20:54:35 -0500 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Lamentablemente no pude bajar el csv. El sitio me pedía crear una cuenta antes para poder bajarlo >:-/ pero si lo compartes por Dropbox o Google Drive sería mejor. El lun., 3 de ago. de 2020 a la(s) 18:42, Lemarchand Barker ( lemarchand8679 en gmail.com) escribió: > Hice un leve intento de usar DataFrame, me costó un poco pero supongo que > debo sentarme y practicar más el tema de pandas. > Voy a probar lo que me dijiste. > Dejo link dónde está el csv: gavade.csv > > Muchas gracias > > > El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (< > python-es en python.org>) escribió: > >> Hola, >> >> para ayudarte sería útil que nos compartieras al menos un fragmento de la >> tabla, pero de entrada pienso que podrías jugar un poco con el argumento >> *index_col* de read_csv y que en lugar de crear una lista con los >> nombres de los laboratorios uses directamente el DataFrame de pandas para >> obtener los datos. >> >> Es difícil sin conocer la estructura de tus datos, pero algo así como el >> siguiente código podría serte útil: >> >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un vector >> lógico con True en aquellas posiciones donde el dato coincida con "Alcon" >> >>> leer.Indice[posiciones] # Esto te devuelve un vector con los índices >> (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo >> equivalente a la lista [60, 61, ...] >> >> Haz la prueba y creo que si checas todas las prestaciones de Pandas ya no >> querrás usar .index() >> >> Saludos y espero que esto te ayude, >> David >> >> El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker ( >> lemarchand8679 en gmail.com) escribió: >> >>> Parece que no pasó el mail. El csv se lee perfecto y la primer columna >>> de la izquierda que sería el índice está ordenado, el único valor que >>> es el código de cada uno de los medicamentos es el que va cambiando y >>> no necesariamente es consecutivo, pero se los puede ordenar de menor a >>> mayor que así es como figura. Pero el valor del índice, el que empieza >>> con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el >>> índice que me da de resultado no coincide con el que figura en el csv. >>> Gracias, saludos >>> >>> El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es >>> () escribió: >>> > >>> > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un >>> laboratorio, y que muestre la posición y el nombre del laboratorio en la >>> misma línea (o los laboratorios) pero sólo obtenés el índice? >>> > >>> > >>> > >>> > PD: nunca voy a entender la necesidad o necedad de responder sin >>> responder, ¡hay que tener ganas! >>> > >>> > >>> > - >>> > >>> > Sent with ProtonMail Secure Email. >>> > >>> > ??????? Original Message ??????? >>> > On Monday, 3 de August de 2020 16:01, Lemarchand Barker < >>> lemarchand8679 en gmail.com> wrote: >>> > >>> > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo >>> csv, >>> > > en este caso lo que hice fue crear una lista llamada laboratorios la >>> > > cual contiene el nombre de todos los laboratorios que figuran en el >>> > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el >>> > > nombre del laboratorio y vi que se usa index() para conocer la >>> > > posición de un valor contenido en la lista. Entonces decidí probar >>> > > ingresando el nombre de un laboratorio para ver si me da el índice: >>> > > >>> > > leer = pd.read_csv('gavade.csv') >>> > > >>> > > laboratorios = [] >>> > > >>> > > for lab in leer.iloc[0:8122, 4]: >>> > > laboratorios.append(lab) >>> > > >>> > > lab = input("Ingrese nombre del laboratorio: ") >>> > > print(laboratorios.index(lab)) >>> > > >>> > > Cuando ejecuto se ve así: >>> > > >>> > > Ingrese nombre del laboratorio: Alcon >>> > > 58 >>> > > >>> > > La cuestión es que en la posición 58, no figura el laboratorio que >>> > > ingresé. El orden es así: >>> > > 58 Abbott EPD >>> > > 59 Abbott EPD >>> > > 60 Alcon >>> > > 61 Alcon >>> > > >>> > > No entiendo, estoy usando mal la función o no se ajusta a lo que >>> > > necesito? Qué estoy haciendo mal? >>> > > Muchas gracias, saludos >>> > > >>> > > Python-es mailing list >>> > > Python-es en python.org >>> > > https://mail.python.org/mailman/listinfo/python-es >>> > >>> > >>> > _______________________________________________ >>> > Python-es mailing list >>> > Python-es en python.org >>> > https://mail.python.org/mailman/listinfo/python-es >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Tue Aug 4 08:21:50 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Tue, 4 Aug 2020 09:21:50 -0300 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Buenos días, dale ahí voy. A ver si se puede acceder: gavade.csv Gracias, saludos El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (< python-es en python.org>) escribió: > Lamentablemente no pude bajar el csv. El sitio me pedía crear una cuenta > antes para poder bajarlo >:-/ pero si lo compartes por Dropbox o Google > Drive sería mejor. > > El lun., 3 de ago. de 2020 a la(s) 18:42, Lemarchand Barker ( > lemarchand8679 en gmail.com) escribió: > >> Hice un leve intento de usar DataFrame, me costó un poco pero supongo que >> debo sentarme y practicar más el tema de pandas. >> Voy a probar lo que me dijiste. >> Dejo link dónde está el csv: gavade.csv >> >> Muchas gracias >> >> >> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (< >> python-es en python.org>) escribió: >> >>> Hola, >>> >>> para ayudarte sería útil que nos compartieras al menos un fragmento de >>> la tabla, pero de entrada pienso que podrías jugar un poco con el argumento >>> *index_col* de read_csv y que en lugar de crear una lista con los >>> nombres de los laboratorios uses directamente el DataFrame de pandas para >>> obtener los datos. >>> >>> Es difícil sin conocer la estructura de tus datos, pero algo así como el >>> siguiente código podría serte útil: >>> >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un vector >>> lógico con True en aquellas posiciones donde el dato coincida con "Alcon" >>> >>> leer.Indice[posiciones] # Esto te devuelve un vector con los índices >>> (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo >>> equivalente a la lista [60, 61, ...] >>> >>> Haz la prueba y creo que si checas todas las prestaciones de Pandas ya >>> no querrás usar .index() >>> >>> Saludos y espero que esto te ayude, >>> David >>> >>> El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker ( >>> lemarchand8679 en gmail.com) escribió: >>> >>>> Parece que no pasó el mail. El csv se lee perfecto y la primer columna >>>> de la izquierda que sería el índice está ordenado, el único valor que >>>> es el código de cada uno de los medicamentos es el que va cambiando y >>>> no necesariamente es consecutivo, pero se los puede ordenar de menor a >>>> mayor que así es como figura. Pero el valor del índice, el que empieza >>>> con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el >>>> índice que me da de resultado no coincide con el que figura en el csv. >>>> Gracias, saludos >>>> >>>> El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es >>>> () escribió: >>>> > >>>> > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un >>>> laboratorio, y que muestre la posición y el nombre del laboratorio en la >>>> misma línea (o los laboratorios) pero sólo obtenés el índice? >>>> > >>>> > >>>> > >>>> > PD: nunca voy a entender la necesidad o necedad de responder sin >>>> responder, ¡hay que tener ganas! >>>> > >>>> > >>>> > - >>>> > >>>> > Sent with ProtonMail Secure Email. >>>> > >>>> > ??????? Original Message ??????? >>>> > On Monday, 3 de August de 2020 16:01, Lemarchand Barker < >>>> lemarchand8679 en gmail.com> wrote: >>>> > >>>> > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo >>>> csv, >>>> > > en este caso lo que hice fue crear una lista llamada laboratorios la >>>> > > cual contiene el nombre de todos los laboratorios que figuran en el >>>> > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso el >>>> > > nombre del laboratorio y vi que se usa index() para conocer la >>>> > > posición de un valor contenido en la lista. Entonces decidí probar >>>> > > ingresando el nombre de un laboratorio para ver si me da el índice: >>>> > > >>>> > > leer = pd.read_csv('gavade.csv') >>>> > > >>>> > > laboratorios = [] >>>> > > >>>> > > for lab in leer.iloc[0:8122, 4]: >>>> > > laboratorios.append(lab) >>>> > > >>>> > > lab = input("Ingrese nombre del laboratorio: ") >>>> > > print(laboratorios.index(lab)) >>>> > > >>>> > > Cuando ejecuto se ve así: >>>> > > >>>> > > Ingrese nombre del laboratorio: Alcon >>>> > > 58 >>>> > > >>>> > > La cuestión es que en la posición 58, no figura el laboratorio que >>>> > > ingresé. El orden es así: >>>> > > 58 Abbott EPD >>>> > > 59 Abbott EPD >>>> > > 60 Alcon >>>> > > 61 Alcon >>>> > > >>>> > > No entiendo, estoy usando mal la función o no se ajusta a lo que >>>> > > necesito? Qué estoy haciendo mal? >>>> > > Muchas gracias, saludos >>>> > > >>>> > > Python-es mailing list >>>> > > Python-es en python.org >>>> > > https://mail.python.org/mailman/listinfo/python-es >>>> > >>>> > >>>> > _______________________________________________ >>>> > Python-es mailing list >>>> > Python-es en python.org >>>> > https://mail.python.org/mailman/listinfo/python-es >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ricardo.cardenes en gmail.com Tue Aug 4 08:25:32 2020 From: ricardo.cardenes en gmail.com (=?UTF-8?Q?Ricardo_C=C3=A1rdenes?=) Date: Tue, 4 Aug 2020 02:25:32 -1000 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Erm... El enlace no sirve. Mira, ve a Drive, haz click derecho en el fichero que quieres compartir y busca, según el idioma que tengas configurado, una de estas dos cosas: - Get shareable link - Obtener enlace O similar. Te debería aparecer una ventana donde se te proporciona un enlace nuevo, que se usará para que otros puedan acceder a tu contenido, pero sólo a eso y sólo siguiendo ese enlace. On Tue, Aug 4, 2020 at 2:22 AM Lemarchand Barker wrote: > Buenos días, dale ahí voy. > A ver si se puede acceder: gavade.csv > > Gracias, saludos > > El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (< > python-es en python.org>) escribió: > >> Lamentablemente no pude bajar el csv. El sitio me pedía crear una cuenta >> antes para poder bajarlo >:-/ pero si lo compartes por Dropbox o Google >> Drive sería mejor. >> >> El lun., 3 de ago. de 2020 a la(s) 18:42, Lemarchand Barker ( >> lemarchand8679 en gmail.com) escribió: >> >>> Hice un leve intento de usar DataFrame, me costó un poco pero supongo >>> que debo sentarme y practicar más el tema de pandas. >>> Voy a probar lo que me dijiste. >>> Dejo link dónde está el csv: gavade.csv >>> >>> Muchas gracias >>> >>> >>> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (< >>> python-es en python.org>) escribió: >>> >>>> Hola, >>>> >>>> para ayudarte sería útil que nos compartieras al menos un fragmento de >>>> la tabla, pero de entrada pienso que podrías jugar un poco con el argumento >>>> *index_col* de read_csv y que en lugar de crear una lista con los >>>> nombres de los laboratorios uses directamente el DataFrame de pandas para >>>> obtener los datos. >>>> >>>> Es difícil sin conocer la estructura de tus datos, pero algo así como >>>> el siguiente código podría serte útil: >>>> >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un >>>> vector lógico con True en aquellas posiciones donde el dato coincida con >>>> "Alcon" >>>> >>> leer.Indice[posiciones] # Esto te devuelve un vector con los >>>> índices (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo >>>> equivalente a la lista [60, 61, ...] >>>> >>>> Haz la prueba y creo que si checas todas las prestaciones de Pandas ya >>>> no querrás usar .index() >>>> >>>> Saludos y espero que esto te ayude, >>>> David >>>> >>>> El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker ( >>>> lemarchand8679 en gmail.com) escribió: >>>> >>>>> Parece que no pasó el mail. El csv se lee perfecto y la primer columna >>>>> de la izquierda que sería el índice está ordenado, el único valor que >>>>> es el código de cada uno de los medicamentos es el que va cambiando y >>>>> no necesariamente es consecutivo, pero se los puede ordenar de menor a >>>>> mayor que así es como figura. Pero el valor del índice, el que empieza >>>>> con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el >>>>> índice que me da de resultado no coincide con el que figura en el csv. >>>>> Gracias, saludos >>>>> >>>>> El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es >>>>> () escribió: >>>>> > >>>>> > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un >>>>> laboratorio, y que muestre la posición y el nombre del laboratorio en la >>>>> misma línea (o los laboratorios) pero sólo obtenés el índice? >>>>> > >>>>> > >>>>> > >>>>> > PD: nunca voy a entender la necesidad o necedad de responder sin >>>>> responder, ¡hay que tener ganas! >>>>> > >>>>> > >>>>> > - >>>>> > >>>>> > Sent with ProtonMail Secure Email. >>>>> > >>>>> > ??????? Original Message ??????? >>>>> > On Monday, 3 de August de 2020 16:01, Lemarchand Barker < >>>>> lemarchand8679 en gmail.com> wrote: >>>>> > >>>>> > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo >>>>> csv, >>>>> > > en este caso lo que hice fue crear una lista llamada laboratorios >>>>> la >>>>> > > cual contiene el nombre de todos los laboratorios que figuran en el >>>>> > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso >>>>> el >>>>> > > nombre del laboratorio y vi que se usa index() para conocer la >>>>> > > posición de un valor contenido en la lista. Entonces decidí probar >>>>> > > ingresando el nombre de un laboratorio para ver si me da el índice: >>>>> > > >>>>> > > leer = pd.read_csv('gavade.csv') >>>>> > > >>>>> > > laboratorios = [] >>>>> > > >>>>> > > for lab in leer.iloc[0:8122, 4]: >>>>> > > laboratorios.append(lab) >>>>> > > >>>>> > > lab = input("Ingrese nombre del laboratorio: ") >>>>> > > print(laboratorios.index(lab)) >>>>> > > >>>>> > > Cuando ejecuto se ve así: >>>>> > > >>>>> > > Ingrese nombre del laboratorio: Alcon >>>>> > > 58 >>>>> > > >>>>> > > La cuestión es que en la posición 58, no figura el laboratorio que >>>>> > > ingresé. El orden es así: >>>>> > > 58 Abbott EPD >>>>> > > 59 Abbott EPD >>>>> > > 60 Alcon >>>>> > > 61 Alcon >>>>> > > >>>>> > > No entiendo, estoy usando mal la función o no se ajusta a lo que >>>>> > > necesito? Qué estoy haciendo mal? >>>>> > > Muchas gracias, saludos >>>>> > > >>>>> > > Python-es mailing list >>>>> > > Python-es en python.org >>>>> > > https://mail.python.org/mailman/listinfo/python-es >>>>> > >>>>> > >>>>> > _______________________________________________ >>>>> > Python-es mailing list >>>>> > Python-es en python.org >>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Tue Aug 4 08:34:05 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker (via Google Drive)) Date: Tue, 04 Aug 2020 12:34:05 +0000 Subject: [Python-es] gavade.csv References: Message-ID: <0000000000008e808805ac0c7896@google.com> I've shared an item with you: gavade.csv https://drive.google.com/file/d/1Mcwp8bg_p_E1-EpGCN72v2j40XCPpRcI/view?usp=sharing&invite=CMqS75MJ&ts=5f2955bd It's not an attachment -- it's stored online. To open this item, just click the link above. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Tue Aug 4 08:50:53 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Tue, 4 Aug 2020 09:50:53 -0300 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Listo, ahora si. Desde este link se puede acceder: gavade.csv Muchas gracias, saludos El mar., 4 ago. 2020 a las 9:26, Ricardo Cárdenes (< ricardo.cardenes en gmail.com>) escribió: > Erm... El enlace no sirve. > > Mira, ve a Drive, haz click derecho en el fichero que quieres compartir y > busca, según el idioma que tengas configurado, una de estas dos cosas: > > > - Get shareable link > - Obtener enlace > > O similar. Te debería aparecer una ventana donde se te proporciona un > enlace nuevo, que se usará para que otros puedan acceder a tu contenido, > pero sólo a eso y sólo siguiendo ese enlace. > > On Tue, Aug 4, 2020 at 2:22 AM Lemarchand Barker > wrote: > >> Buenos días, dale ahí voy. >> A ver si se puede acceder: gavade.csv >> >> Gracias, saludos >> >> El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (< >> python-es en python.org>) escribió: >> >>> Lamentablemente no pude bajar el csv. El sitio me pedía crear una cuenta >>> antes para poder bajarlo >:-/ pero si lo compartes por Dropbox o Google >>> Drive sería mejor. >>> >>> El lun., 3 de ago. de 2020 a la(s) 18:42, Lemarchand Barker ( >>> lemarchand8679 en gmail.com) escribió: >>> >>>> Hice un leve intento de usar DataFrame, me costó un poco pero supongo >>>> que debo sentarme y practicar más el tema de pandas. >>>> Voy a probar lo que me dijiste. >>>> Dejo link dónde está el csv: gavade.csv >>>> >>>> Muchas gracias >>>> >>>> >>>> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (< >>>> python-es en python.org>) escribió: >>>> >>>>> Hola, >>>>> >>>>> para ayudarte sería útil que nos compartieras al menos un fragmento de >>>>> la tabla, pero de entrada pienso que podrías jugar un poco con el argumento >>>>> *index_col* de read_csv y que en lugar de crear una lista con los >>>>> nombres de los laboratorios uses directamente el DataFrame de pandas para >>>>> obtener los datos. >>>>> >>>>> Es difícil sin conocer la estructura de tus datos, pero algo así como >>>>> el siguiente código podría serte útil: >>>>> >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un >>>>> vector lógico con True en aquellas posiciones donde el dato coincida con >>>>> "Alcon" >>>>> >>> leer.Indice[posiciones] # Esto te devuelve un vector con los >>>>> índices (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo >>>>> equivalente a la lista [60, 61, ...] >>>>> >>>>> Haz la prueba y creo que si checas todas las prestaciones de Pandas ya >>>>> no querrás usar .index() >>>>> >>>>> Saludos y espero que esto te ayude, >>>>> David >>>>> >>>>> El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker ( >>>>> lemarchand8679 en gmail.com) escribió: >>>>> >>>>>> Parece que no pasó el mail. El csv se lee perfecto y la primer columna >>>>>> de la izquierda que sería el índice está ordenado, el único valor que >>>>>> es el código de cada uno de los medicamentos es el que va cambiando y >>>>>> no necesariamente es consecutivo, pero se los puede ordenar de menor a >>>>>> mayor que así es como figura. Pero el valor del índice, el que empieza >>>>>> con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el >>>>>> índice que me da de resultado no coincide con el que figura en el csv. >>>>>> Gracias, saludos >>>>>> >>>>>> El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es >>>>>> () escribió: >>>>>> > >>>>>> > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un >>>>>> laboratorio, y que muestre la posición y el nombre del laboratorio en la >>>>>> misma línea (o los laboratorios) pero sólo obtenés el índice? >>>>>> > >>>>>> > >>>>>> > >>>>>> > PD: nunca voy a entender la necesidad o necedad de responder sin >>>>>> responder, ¡hay que tener ganas! >>>>>> > >>>>>> > >>>>>> > - >>>>>> > >>>>>> > Sent with ProtonMail Secure Email. >>>>>> > >>>>>> > ??????? Original Message ??????? >>>>>> > On Monday, 3 de August de 2020 16:01, Lemarchand Barker < >>>>>> lemarchand8679 en gmail.com> wrote: >>>>>> > >>>>>> > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo >>>>>> csv, >>>>>> > > en este caso lo que hice fue crear una lista llamada laboratorios >>>>>> la >>>>>> > > cual contiene el nombre de todos los laboratorios que figuran en >>>>>> el >>>>>> > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso >>>>>> el >>>>>> > > nombre del laboratorio y vi que se usa index() para conocer la >>>>>> > > posición de un valor contenido en la lista. Entonces decidí probar >>>>>> > > ingresando el nombre de un laboratorio para ver si me da el >>>>>> índice: >>>>>> > > >>>>>> > > leer = pd.read_csv('gavade.csv') >>>>>> > > >>>>>> > > laboratorios = [] >>>>>> > > >>>>>> > > for lab in leer.iloc[0:8122, 4]: >>>>>> > > laboratorios.append(lab) >>>>>> > > >>>>>> > > lab = input("Ingrese nombre del laboratorio: ") >>>>>> > > print(laboratorios.index(lab)) >>>>>> > > >>>>>> > > Cuando ejecuto se ve así: >>>>>> > > >>>>>> > > Ingrese nombre del laboratorio: Alcon >>>>>> > > 58 >>>>>> > > >>>>>> > > La cuestión es que en la posición 58, no figura el laboratorio que >>>>>> > > ingresé. El orden es así: >>>>>> > > 58 Abbott EPD >>>>>> > > 59 Abbott EPD >>>>>> > > 60 Alcon >>>>>> > > 61 Alcon >>>>>> > > >>>>>> > > No entiendo, estoy usando mal la función o no se ajusta a lo que >>>>>> > > necesito? Qué estoy haciendo mal? >>>>>> > > Muchas gracias, saludos >>>>>> > > >>>>>> > > Python-es mailing list >>>>>> > > Python-es en python.org >>>>>> > > https://mail.python.org/mailman/listinfo/python-es >>>>>> > >>>>>> > >>>>>> > _______________________________________________ >>>>>> > Python-es mailing list >>>>>> > Python-es en python.org >>>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es en python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From david.suarez en yahoo.com Tue Aug 4 11:55:28 2020 From: david.suarez en yahoo.com (=?UTF-8?Q?David_Su=C3=A1rez?=) Date: Tue, 4 Aug 2020 10:55:28 -0500 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Hola, ya pude abrir, aunque con trabajos el archivo. Creo que podría servirte el siguiente código: >> import pandas as pd >> leer = pd.read_csv('gavade.csv') >> leer[leer.LABORATORIO == "Alcon"] Creo que con eso ya tienes suficiente para replicar el funcionamiento de tu código original. Como ves, las estructuras de Pandas funcionan en parte como una base de datos relacional, así que probablemente ya no necesitarás usar .index(). Sólo para incitarte a aprender más de Pandas, la siguiente instrucción te da el promedio de los valores de IMPORTE_AFILIADO para los items del laboratorio Alcon: >>> leer[leer.LABORATORIO == "Alcon"].IMPORTE_AFILIADO.mean() Saludos y suerte El mar., 4 de ago. de 2020 a la(s) 07:22, Lemarchand Barker ( lemarchand8679 en gmail.com) escribió: > Buenos días, dale ahí voy. > A ver si se puede acceder: gavade.csv > > Gracias, saludos > > El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (< > python-es en python.org>) escribió: > >> Lamentablemente no pude bajar el csv. El sitio me pedía crear una cuenta >> antes para poder bajarlo >:-/ pero si lo compartes por Dropbox o Google >> Drive sería mejor. >> >> El lun., 3 de ago. de 2020 a la(s) 18:42, Lemarchand Barker ( >> lemarchand8679 en gmail.com) escribió: >> >>> Hice un leve intento de usar DataFrame, me costó un poco pero supongo >>> que debo sentarme y practicar más el tema de pandas. >>> Voy a probar lo que me dijiste. >>> Dejo link dónde está el csv: gavade.csv >>> >>> Muchas gracias >>> >>> >>> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (< >>> python-es en python.org>) escribió: >>> >>>> Hola, >>>> >>>> para ayudarte sería útil que nos compartieras al menos un fragmento de >>>> la tabla, pero de entrada pienso que podrías jugar un poco con el argumento >>>> *index_col* de read_csv y que en lugar de crear una lista con los >>>> nombres de los laboratorios uses directamente el DataFrame de pandas para >>>> obtener los datos. >>>> >>>> Es difícil sin conocer la estructura de tus datos, pero algo así como >>>> el siguiente código podría serte útil: >>>> >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un >>>> vector lógico con True en aquellas posiciones donde el dato coincida con >>>> "Alcon" >>>> >>> leer.Indice[posiciones] # Esto te devuelve un vector con los >>>> índices (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo >>>> equivalente a la lista [60, 61, ...] >>>> >>>> Haz la prueba y creo que si checas todas las prestaciones de Pandas ya >>>> no querrás usar .index() >>>> >>>> Saludos y espero que esto te ayude, >>>> David >>>> >>>> El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker ( >>>> lemarchand8679 en gmail.com) escribió: >>>> >>>>> Parece que no pasó el mail. El csv se lee perfecto y la primer columna >>>>> de la izquierda que sería el índice está ordenado, el único valor que >>>>> es el código de cada uno de los medicamentos es el que va cambiando y >>>>> no necesariamente es consecutivo, pero se los puede ordenar de menor a >>>>> mayor que así es como figura. Pero el valor del índice, el que empieza >>>>> con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el >>>>> índice que me da de resultado no coincide con el que figura en el csv. >>>>> Gracias, saludos >>>>> >>>>> El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es >>>>> () escribió: >>>>> > >>>>> > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un >>>>> laboratorio, y que muestre la posición y el nombre del laboratorio en la >>>>> misma línea (o los laboratorios) pero sólo obtenés el índice? >>>>> > >>>>> > >>>>> > >>>>> > PD: nunca voy a entender la necesidad o necedad de responder sin >>>>> responder, ¡hay que tener ganas! >>>>> > >>>>> > >>>>> > - >>>>> > >>>>> > Sent with ProtonMail Secure Email. >>>>> > >>>>> > ??????? Original Message ??????? >>>>> > On Monday, 3 de August de 2020 16:01, Lemarchand Barker < >>>>> lemarchand8679 en gmail.com> wrote: >>>>> > >>>>> > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo >>>>> csv, >>>>> > > en este caso lo que hice fue crear una lista llamada laboratorios >>>>> la >>>>> > > cual contiene el nombre de todos los laboratorios que figuran en el >>>>> > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso >>>>> el >>>>> > > nombre del laboratorio y vi que se usa index() para conocer la >>>>> > > posición de un valor contenido en la lista. Entonces decidí probar >>>>> > > ingresando el nombre de un laboratorio para ver si me da el índice: >>>>> > > >>>>> > > leer = pd.read_csv('gavade.csv') >>>>> > > >>>>> > > laboratorios = [] >>>>> > > >>>>> > > for lab in leer.iloc[0:8122, 4]: >>>>> > > laboratorios.append(lab) >>>>> > > >>>>> > > lab = input("Ingrese nombre del laboratorio: ") >>>>> > > print(laboratorios.index(lab)) >>>>> > > >>>>> > > Cuando ejecuto se ve así: >>>>> > > >>>>> > > Ingrese nombre del laboratorio: Alcon >>>>> > > 58 >>>>> > > >>>>> > > La cuestión es que en la posición 58, no figura el laboratorio que >>>>> > > ingresé. El orden es así: >>>>> > > 58 Abbott EPD >>>>> > > 59 Abbott EPD >>>>> > > 60 Alcon >>>>> > > 61 Alcon >>>>> > > >>>>> > > No entiendo, estoy usando mal la función o no se ajusta a lo que >>>>> > > necesito? Qué estoy haciendo mal? >>>>> > > Muchas gracias, saludos >>>>> > > >>>>> > > Python-es mailing list >>>>> > > Python-es en python.org >>>>> > > https://mail.python.org/mailman/listinfo/python-es >>>>> > >>>>> > >>>>> > _______________________________________________ >>>>> > Python-es mailing list >>>>> > Python-es en python.org >>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Tue Aug 4 12:26:16 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Tue, 4 Aug 2020 13:26:16 -0300 Subject: [Python-es] [Consulta] lista .index() In-Reply-To: References: Message-ID: Hola, estoy practicando asi que estoy haciendo unos ejemplos con head() y otras cosas simples hasta que me anime a hacer cosas un poquito más "complejas". Muchas gracias, saludos El mar., 4 ago. 2020 a las 12:56, David Suárez vía Python-es (< python-es en python.org>) escribió: > Hola, > > ya pude abrir, aunque con trabajos el archivo. Creo que podría servirte el > siguiente código: > > >> import pandas as pd > >> leer = pd.read_csv('gavade.csv') > >> leer[leer.LABORATORIO == "Alcon"] > > Creo que con eso ya tienes suficiente para replicar el funcionamiento de > tu código original. Como ves, las estructuras de Pandas funcionan en parte > como una base de datos relacional, así que probablemente ya no necesitarás > usar .index(). Sólo para incitarte a aprender más de Pandas, la siguiente > instrucción te da el promedio de los valores de IMPORTE_AFILIADO para los > items del laboratorio Alcon: > > >>> leer[leer.LABORATORIO == "Alcon"].IMPORTE_AFILIADO.mean() > > Saludos y suerte > > El mar., 4 de ago. de 2020 a la(s) 07:22, Lemarchand Barker ( > lemarchand8679 en gmail.com) escribió: > >> Buenos días, dale ahí voy. >> A ver si se puede acceder: gavade.csv >> >> Gracias, saludos >> >> El lun., 3 ago. 2020 a las 22:56, David Suárez vía Python-es (< >> python-es en python.org>) escribió: >> >>> Lamentablemente no pude bajar el csv. El sitio me pedía crear una cuenta >>> antes para poder bajarlo >:-/ pero si lo compartes por Dropbox o Google >>> Drive sería mejor. >>> >>> El lun., 3 de ago. de 2020 a la(s) 18:42, Lemarchand Barker ( >>> lemarchand8679 en gmail.com) escribió: >>> >>>> Hice un leve intento de usar DataFrame, me costó un poco pero supongo >>>> que debo sentarme y practicar más el tema de pandas. >>>> Voy a probar lo que me dijiste. >>>> Dejo link dónde está el csv: gavade.csv >>>> >>>> Muchas gracias >>>> >>>> >>>> El lun., 3 ago. 2020 a las 20:13, David Suárez vía Python-es (< >>>> python-es en python.org>) escribió: >>>> >>>>> Hola, >>>>> >>>>> para ayudarte sería útil que nos compartieras al menos un fragmento de >>>>> la tabla, pero de entrada pienso que podrías jugar un poco con el argumento >>>>> *index_col* de read_csv y que en lugar de crear una lista con los >>>>> nombres de los laboratorios uses directamente el DataFrame de pandas para >>>>> obtener los datos. >>>>> >>>>> Es difícil sin conocer la estructura de tus datos, pero algo así como >>>>> el siguiente código podría serte útil: >>>>> >>> posiciones = leer.Laboratorio == "Alcon" #Esto te devuelve un >>>>> vector lógico con True en aquellas posiciones donde el dato coincida con >>>>> "Alcon" >>>>> >>> leer.Indice[posiciones] # Esto te devuelve un vector con los >>>>> índices (de tu archivo .csv) correspondientes al laboratorio Alcon. Algo >>>>> equivalente a la lista [60, 61, ...] >>>>> >>>>> Haz la prueba y creo que si checas todas las prestaciones de Pandas ya >>>>> no querrás usar .index() >>>>> >>>>> Saludos y espero que esto te ayude, >>>>> David >>>>> >>>>> El lun., 3 de ago. de 2020 a la(s) 15:52, Lemarchand Barker ( >>>>> lemarchand8679 en gmail.com) escribió: >>>>> >>>>>> Parece que no pasó el mail. El csv se lee perfecto y la primer columna >>>>>> de la izquierda que sería el índice está ordenado, el único valor que >>>>>> es el código de cada uno de los medicamentos es el que va cambiando y >>>>>> no necesariamente es consecutivo, pero se los puede ordenar de menor a >>>>>> mayor que así es como figura. Pero el valor del índice, el que empieza >>>>>> con 0 y termina en 8122, cuando ingreso un nombre de laboratorio el >>>>>> índice que me da de resultado no coincide con el que figura en el csv. >>>>>> Gracias, saludos >>>>>> >>>>>> El lun., 3 ago. 2020 a las 17:22, Darío vía Python-es >>>>>> () escribió: >>>>>> > >>>>>> > Hola, a ver si entiendo lo que quisieras que haga. Ingresás un >>>>>> laboratorio, y que muestre la posición y el nombre del laboratorio en la >>>>>> misma línea (o los laboratorios) pero sólo obtenés el índice? >>>>>> > >>>>>> > >>>>>> > >>>>>> > PD: nunca voy a entender la necesidad o necedad de responder sin >>>>>> responder, ¡hay que tener ganas! >>>>>> > >>>>>> > >>>>>> > - >>>>>> > >>>>>> > Sent with ProtonMail Secure Email. >>>>>> > >>>>>> > ??????? Original Message ??????? >>>>>> > On Monday, 3 de August de 2020 16:01, Lemarchand Barker < >>>>>> lemarchand8679 en gmail.com> wrote: >>>>>> > >>>>>> > > Buenas tardes, les hago una consulta. Sigo jugando con el archivo >>>>>> csv, >>>>>> > > en este caso lo que hice fue crear una lista llamada laboratorios >>>>>> la >>>>>> > > cual contiene el nombre de todos los laboratorios que figuran en >>>>>> el >>>>>> > > archivo. Hasta ahí perfecto, el tema era el siguiente, yo ingreso >>>>>> el >>>>>> > > nombre del laboratorio y vi que se usa index() para conocer la >>>>>> > > posición de un valor contenido en la lista. Entonces decidí probar >>>>>> > > ingresando el nombre de un laboratorio para ver si me da el >>>>>> índice: >>>>>> > > >>>>>> > > leer = pd.read_csv('gavade.csv') >>>>>> > > >>>>>> > > laboratorios = [] >>>>>> > > >>>>>> > > for lab in leer.iloc[0:8122, 4]: >>>>>> > > laboratorios.append(lab) >>>>>> > > >>>>>> > > lab = input("Ingrese nombre del laboratorio: ") >>>>>> > > print(laboratorios.index(lab)) >>>>>> > > >>>>>> > > Cuando ejecuto se ve así: >>>>>> > > >>>>>> > > Ingrese nombre del laboratorio: Alcon >>>>>> > > 58 >>>>>> > > >>>>>> > > La cuestión es que en la posición 58, no figura el laboratorio que >>>>>> > > ingresé. El orden es así: >>>>>> > > 58 Abbott EPD >>>>>> > > 59 Abbott EPD >>>>>> > > 60 Alcon >>>>>> > > 61 Alcon >>>>>> > > >>>>>> > > No entiendo, estoy usando mal la función o no se ajusta a lo que >>>>>> > > necesito? Qué estoy haciendo mal? >>>>>> > > Muchas gracias, saludos >>>>>> > > >>>>>> > > Python-es mailing list >>>>>> > > Python-es en python.org >>>>>> > > https://mail.python.org/mailman/listinfo/python-es >>>>>> > >>>>>> > >>>>>> > _______________________________________________ >>>>>> > Python-es mailing list >>>>>> > Python-es en python.org >>>>>> > https://mail.python.org/mailman/listinfo/python-es >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es en python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es en python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Tue Aug 4 16:06:28 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Tue, 4 Aug 2020 17:06:28 -0300 Subject: [Python-es] [Consulta] describe() Message-ID: Hola, estoy leyendo sobre pandas y no me queda muy en claro qué función cumple describe(). Tengo la siguiente línea: import pandas as pd leer = pd.read_csv('democsv.csv') print(leer.describe()) Y la salida es la siguiente: /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/testcsv.py ALFABETA PVP_PAMI COBERTURA IMPORTE_AFILIADO count 39.000000 39.000000 39.000000 39.000000 mean 20989.615385 1661.154103 57.179487 781.984615 std 18690.580373 3736.403181 15.719368 1884.191785 min 19.000000 20.160000 50.000000 0.000000 25% 989.500000 362.245000 50.000000 115.040000 50% 23543.000000 580.650000 50.000000 228.750000 75% 30090.000000 1075.375000 55.000000 537.690000 max 56081.000000 19721.760000 100.000000 9860.880000 Por lo que leí genera estadísticas descriptivas? Complemento el libro con este link: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html Por ejemplo en qué caso haría uso de describe y con qué propósito? Muchas gracias, saludos ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From darioslc en protonmail.com Tue Aug 4 16:47:26 2020 From: darioslc en protonmail.com (=?utf-8?Q?Dar=C3=ADo?=) Date: Tue, 04 Aug 2020 20:47:26 +0000 Subject: [Python-es] [Consulta] describe() In-Reply-To: References: Message-ID: Son valores estadísticos de la muestra, indica los pirncipales (la media, máximo, mínimo, desvío estándar, etc.). Es útil si necesitás un pantallazo de la muestra, una especie de resumen estadístico. Pero para manejarlos en el conjunto de datos es mejor usar las funciones por separado, y hacer ciclos, operaciones y demás cosas. - Sent with [ProtonMail](https://protonmail.com) Secure Email. ??????? Original Message ??????? On Tuesday, 4 de August de 2020 17:06, Lemarchand Barker wrote: > Hola, estoy leyendo sobre pandas y no me queda muy en claro qué función cumple describe(). > > Tengo la siguiente línea: > > import pandas as pd > leer = pd.read_csv('democsv.csv') > print(leer.describe()) > > Y la salida es la siguiente: > > /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/testcsv.py > ALFABETA PVP_PAMI COBERTURA IMPORTE_AFILIADO > count 39.000000 39.000000 39.000000 39.000000 > mean 20989.615385 1661.154103 57.179487 781.984615 > std 18690.580373 3736.403181 15.719368 1884.191785 > min 19.000000 20.160000 50.000000 0.000000 > 25% 989.500000 362.245000 50.000000 115.040000 > 50% 23543.000000 580.650000 50.000000 228.750000 > 75% 30090.000000 1075.375000 55.000000 537.690000 > max 56081.000000 19721.760000 100.000000 9860.880000 > > Por lo que leí genera estadísticas descriptivas? > Complemento el libro con este link: > https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html > Por ejemplo en qué caso haría uso de describe y con qué propósito? > Muchas gracias, saludos ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Tue Aug 4 16:53:49 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Tue, 4 Aug 2020 17:53:49 -0300 Subject: [Python-es] [Consulta] describe() In-Reply-To: References: Message-ID: Perfecto, muchas gracias El mar., 4 ago. 2020 a las 17:48, Darío vía Python-es () escribió: > Son valores estadísticos de la muestra, indica los pirncipales (la media, > máximo, mínimo, desvío estándar, etc.). Es útil si necesitás un pantallazo > de la muestra, una especie de resumen estadístico. > Pero para manejarlos en el conjunto de datos es mejor usar las funciones > por separado, y hacer ciclos, operaciones y demás cosas. > > - > > Sent with ProtonMail Secure Email. > > ??????? Original Message ??????? > On Tuesday, 4 de August de 2020 17:06, Lemarchand Barker < > lemarchand8679 en gmail.com> wrote: > > Hola, estoy leyendo sobre pandas y no me queda muy en claro qué función > cumple describe(). > > Tengo la siguiente línea: > > import pandas as pd > leer = pd.read_csv('democsv.csv') > print(leer.describe()) > > Y la salida es la siguiente: > > /usr/bin/python3.8 /home/raiden/Programacion/curso/ejercicios/testcsv.py > ALFABETA PVP_PAMI COBERTURA IMPORTE_AFILIADO > count 39.000000 39.000000 39.000000 39.000000 > mean 20989.615385 1661.154103 57.179487 781.984615 > std 18690.580373 3736.403181 15.719368 1884.191785 > min 19.000000 20.160000 50.000000 0.000000 > 25% 989.500000 362.245000 50.000000 115.040000 > 50% 23543.000000 580.650000 50.000000 228.750000 > 75% 30090.000000 1075.375000 55.000000 537.690000 > max 56081.000000 19721.760000 100.000000 9860.880000 > > Por lo que leí genera estadísticas descriptivas? > Complemento el libro con este link: > > https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html > Por ejemplo en qué caso haría uso de describe y con qué propósito? > Muchas gracias, saludos > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Wed Aug 5 15:06:01 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Wed, 5 Aug 2020 16:06:01 -0300 Subject: [Python-es] [Consulta] isin() Message-ID: Hola siguiendo con la lectura de pandas, estoy probando isin() y no me queda muy en claro bien que función cumple y qué tipo de uso le podría dar. Mi ejemplo es el siguiente: leer = pd.read_csv('democsv.csv') df = pd.DataFrame({ 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'], 'pami': ['490.13', '382.24', '245.44', '617.12'],}, index=['19', '629', '23549', '30087']) df2 = df.copy() df2['pami'] = ['490.13', '382.24', '245.44', '617.12'] *print(df2['pami'])* Salida: 19 490.13 629 382.24 23549 245.44 30087 617.12 Name: pami, dtype: object *print(df2[df2['pami'].isin(['382.24', '627.12'])])* - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 y solo muestra 1, qué estoy haciendo mal? Salida: lab pami 629 Alcon 382.24 *print(df2.isin({'pami': [1, 3]}))* - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores booleanos, en realidad no se que estaría chequeando Salida: lab pami 19 False False 629 False False 23549 False False 30087 False False Muchas gracias, saludos ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From darioslc en protonmail.com Wed Aug 5 15:48:29 2020 From: darioslc en protonmail.com (=?utf-8?Q?Dar=C3=ADo?=) Date: Wed, 05 Aug 2020 19:48:29 +0000 Subject: [Python-es] [Consulta] isin() In-Reply-To: References: Message-ID: Hola, fijate que en lugar de 617.12 ponés 627.12 para ver si está. Lo cual está funcionando bien. Hay un error de tipeo. - Sent with [ProtonMail](https://protonmail.com) Secure Email. ??????? Original Message ??????? On Wednesday, 5 de August de 2020 16:06, Lemarchand Barker wrote: > Hola siguiendo con la lectura de pandas, estoy probando isin() y no me queda muy en claro bien que función cumple y qué tipo de uso le podría dar. > Mi ejemplo es el siguiente: > > leer = pd.read_csv('democsv.csv') > df = pd.DataFrame({ > 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'], > 'pami': ['490.13', '382.24', '245.44', '617.12'],}, > index=['19', '629', '23549', '30087']) > df2 = df.copy() > > df2['pami'] = ['490.13', '382.24', '245.44', '617.12'] > print(df2['pami']) > > Salida: > 19 490.13 > 629 382.24 > 23549 245.44 > 30087 617.12 > Name: pami, dtype: object > > print(df2[df2['pami'].isin(['382.24', '627.12'])]) > > - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 y solo muestra 1, qué estoy haciendo mal? > > Salida: > lab pami > 629 Alcon 382.24 > > print(df2.isin({'pami': [1, 3]})) > > - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores booleanos, en realidad no se que estaría chequeando > > Salida: > lab pami > 19 False False > 629 False False > 23549 False False > 30087 False False > > Muchas gracias, saludos ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Wed Aug 5 16:07:30 2020 From: lemarchand8679 en gmail.com (lemarchand8679) Date: Wed, 05 Aug 2020 17:07:30 -0300 Subject: [Python-es] [Consulta] isin() In-Reply-To: Message-ID: <5f2b1185.1c69fb81.2c074.bef5@mx.google.com> Pero que .....d....a, gracias.Igual sigo sin comprender mucho su uso.SaludosEnviado desde mi smartphone Samsung Galaxy. -------- Mensaje original --------De: Darío vía Python-es Fecha: 5/8/20 16:49 (GMT-03:00) A: La lista de python en castellano CC: Darío Asunto: Re: [Python-es] [Consulta] isin() Hola, fijate que en lugar de 617.12 ponés 627.12 para ver si está. Lo cual está funcionando bien. Hay un error de tipeo.-Sent with ProtonMail Secure Email.??????? Original Message ??????? On Wednesday, 5 de August de 2020 16:06, Lemarchand Barker wrote: Hola siguiendo con la lectura de pandas, estoy probando isin() y no me queda muy en claro bien que función cumple y qué tipo de uso le podría dar.Mi ejemplo es el siguiente:leer = pd.read_csv('democsv.csv')df = pd.DataFrame({    'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'],    'pami': ['490.13', '382.24', '245.44', '617.12'],},    index=['19', '629', '23549', '30087'])df2 = df.copy()df2['pami'] = ['490.13', '382.24', '245.44', '617.12']print(df2['pami'])Salida:19       490.13629      382.2423549    245.4430087    617.12Name: pami, dtype: objectprint(df2[df2['pami'].isin(['382.24', '627.12'])])- En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 y solo muestra 1, qué estoy haciendo mal?Salida:           lab    pami629  Alcon  382.24print(df2.isin({'pami': [1, 3]}))- Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores booleanos, en realidad no se que estaría chequeandoSalida:              lab   pami19        False  False629      False  False23549  False  False30087  False  FalseMuchas gracias, saludos ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ricardo.cardenes en gmail.com Wed Aug 5 16:12:56 2020 From: ricardo.cardenes en gmail.com (=?UTF-8?Q?Ricardo_C=C3=A1rdenes?=) Date: Wed, 5 Aug 2020 10:12:56 -1000 Subject: [Python-es] [Consulta] isin() In-Reply-To: References: Message-ID: Aparte de lo que te está contestando Darío (error en la entrada: 627.12 en lugar de 617.12), a tu otra pregunta... - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores > booleanos, en realidad no se que estaría chequeando isin te devuelve *siempre* un DataFrame de booleanos, siendo True las celdas donde hay coincidencia con alguno de los valores que pasaste a isin. Así pues, ninguna sorpresa. Ese dataframe de booleanos lo puedes utilizar como una *máscara* para filtrar los valores de otro DataFrame. Eso es lo que haces en tu ejemplo anterior: *print(df2[df2['pami'].isin(['382.24', '627.12'])])* Observa que estás usando df2['pami'].isin(['382.24', '627.12']) como índice del propio df2. En este caso, tu máscara está discriminando algunas filas: el resultado de df2[mascara] será un nuevo DataFrame que mostrará (normalmente esto se hace con una clase proxy que actúa como "vista") sólo esas filas. En tu segundo ejemplo no estás aplicando la máscara: la estás imprimiendo directamente y por tanto sólo ves los booleanos. Curiosidad: las máscaras se pueden combinar usando operaciones booleanas normales. Por ejemplo, combinando criterios sobre diferentes columnas: >>> l = df2['lab'].isin(['Alcon']) >>> p = df2['pami'].isin(['382.24', '617.12']) >>> l 19 False 629 False 23549 True 30087 False Name: lab, dtype: bool >>> p 19 False 629 True 23549 False 30087 True Name: pami, dtype: bool >>> l & p # AND lógico -> todas False porque no coincide nada 19 False 629 False 23549 False 30087 False dtype: bool >>> l | p # OR lógico -> combina las filas True de ambas 19 False 629 True 23549 True 30087 True dtype: bool >>> df2[l | p] # DataFrame con las filas que cumplen AL MENOS uno de los dos criterios lab pami 629 Alcon 382.24 23549 Duncan 245.44 30087 Fabra 617.12 >>> df2[l & p] # DataFrame con las filas que cumplen AMBOS criterios (está vacío, claro) Empty DataFrame Columns: [lab, pami] Index: [] Saludos, Ricardo On Wed, Aug 5, 2020 at 9:06 AM Lemarchand Barker wrote: > Hola siguiendo con la lectura de pandas, estoy probando isin() y no me > queda muy en claro bien que función cumple y qué tipo de uso le podría dar. > Mi ejemplo es el siguiente: > > leer = pd.read_csv('democsv.csv') > df = pd.DataFrame({ > 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'], > 'pami': ['490.13', '382.24', '245.44', '617.12'],}, > index=['19', '629', '23549', '30087']) > df2 = df.copy() > > df2['pami'] = ['490.13', '382.24', '245.44', '617.12'] > *print(df2['pami'])* > > Salida: > 19 490.13 > 629 382.24 > 23549 245.44 > 30087 617.12 > Name: pami, dtype: object > > > *print(df2[df2['pami'].isin(['382.24', '627.12'])])* > > - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 y > solo muestra 1, qué estoy haciendo mal? > > Salida: > lab pami > 629 Alcon 382.24 > > > *print(df2.isin({'pami': [1, 3]}))* > > - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores > booleanos, en realidad no se que estaría chequeando > > Salida: > lab pami > 19 False False > 629 False False > 23549 False False > 30087 False False > > Muchas gracias, saludos > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ricardo.cardenes en gmail.com Wed Aug 5 16:22:14 2020 From: ricardo.cardenes en gmail.com (=?UTF-8?Q?Ricardo_C=C3=A1rdenes?=) Date: Wed, 5 Aug 2020 10:22:14 -1000 Subject: [Python-es] [Consulta] isin() In-Reply-To: References: Message-ID: Por cierto, añado: observa que limité los criterios a columnas concretas. Eso tiene perfecto sentido aquí porque cada columna tiene una semántica diferente. Sin embargo, nada te impide aplicar isin a un DataFrame entero. El problema es que el resultado puede no tener mucho sentido (o sí, depende): >>> mask = df2.isin(['382.24', '617.12']) >>> mask lab pami 19 False False 629 False True 23549 False False 30087 False True Obviamente, todas las entradas de la columna "lab" salen falsos. ¿Qué sucede si usas esto como máscara? >>> df2[mask] lab pami 19 NaN NaN 629 NaN 382.24 23549 NaN NaN 30087 NaN 617.12 Dado que no puedes discriminar filas enteras, la máscara no sabe lo que estás queriendo hacer. Y por tanto va a mostrarte *todo*, pero poniendo valores NaN ("not a number") en las celdas falsas. Por cierto, que la máscara no tiene por qué ser un DataSet. Puede ser por ejemplo una simple lista, que se aplica al primer eje (filas, en este caso): >>> df2[[False, True, False, True]] lab pami 629 Alcon 382.24 30087 Fabra 617.12 Y dado que Pandas se apoya en NumPy, imagino que puedes pasar un array de NumPy también. On Wed, Aug 5, 2020 at 10:12 AM Ricardo Cárdenes wrote: > Aparte de lo que te está contestando Darío (error en la entrada: 627.12 en > lugar de 617.12), a tu otra pregunta... > > - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra valores >> booleanos, en realidad no se que estaría chequeando > > > isin te devuelve *siempre* un DataFrame de booleanos, siendo True las > celdas donde hay coincidencia con alguno de los valores que pasaste a isin. > Así pues, ninguna sorpresa. Ese dataframe de booleanos lo puedes utilizar > como una *máscara* para filtrar los valores de otro DataFrame. Eso es lo > que haces en tu ejemplo anterior: > > *print(df2[df2['pami'].isin(['382.24', '627.12'])])* > > > Observa que estás usando df2['pami'].isin(['382.24', '627.12']) como > índice del propio df2. En este caso, tu máscara está discriminando > algunas filas: el resultado de df2[mascara] será un nuevo DataFrame que > mostrará (normalmente esto se hace con una clase proxy que actúa como > "vista") sólo esas filas. > > En tu segundo ejemplo no estás aplicando la máscara: la estás imprimiendo > directamente y por tanto sólo ves los booleanos. > > Curiosidad: las máscaras se pueden combinar usando operaciones booleanas > normales. Por ejemplo, combinando criterios sobre diferentes columnas: > > >>> l = df2['lab'].isin(['Alcon']) > >>> p = df2['pami'].isin(['382.24', '617.12']) > >>> l > 19 False > 629 False > 23549 True > 30087 False > Name: lab, dtype: bool > >>> p > 19 False > 629 True > 23549 False > 30087 True > Name: pami, dtype: bool > >>> l & p # AND lógico -> todas False porque no coincide nada > 19 False > 629 False > 23549 False > 30087 False > dtype: bool > >>> l | p # OR lógico -> combina las filas True de ambas > 19 False > 629 True > 23549 True > 30087 True > dtype: bool > >>> df2[l | p] # DataFrame con las filas que cumplen AL MENOS uno de > los dos criterios > lab pami > 629 Alcon 382.24 > 23549 Duncan 245.44 > 30087 Fabra 617.12 > >>> df2[l & p] # DataFrame con las filas que cumplen AMBOS criterios > (está vacío, claro) > Empty DataFrame > Columns: [lab, pami] > Index: [] > > > Saludos, > Ricardo > > On Wed, Aug 5, 2020 at 9:06 AM Lemarchand Barker > wrote: > >> Hola siguiendo con la lectura de pandas, estoy probando isin() y no me >> queda muy en claro bien que función cumple y qué tipo de uso le podría dar. >> Mi ejemplo es el siguiente: >> >> leer = pd.read_csv('democsv.csv') >> df = pd.DataFrame({ >> 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'], >> 'pami': ['490.13', '382.24', '245.44', '617.12'],}, >> index=['19', '629', '23549', '30087']) >> df2 = df.copy() >> >> df2['pami'] = ['490.13', '382.24', '245.44', '617.12'] >> *print(df2['pami'])* >> >> Salida: >> 19 490.13 >> 629 382.24 >> 23549 245.44 >> 30087 617.12 >> Name: pami, dtype: object >> >> >> *print(df2[df2['pami'].isin(['382.24', '627.12'])])* >> >> - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 >> y solo muestra 1, qué estoy haciendo mal? >> >> Salida: >> lab pami >> 629 Alcon 382.24 >> >> >> *print(df2.isin({'pami': [1, 3]}))* >> >> - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra >> valores booleanos, en realidad no se que estaría chequeando >> >> Salida: >> lab pami >> 19 False False >> 629 False False >> 23549 False False >> 30087 False False >> >> Muchas gracias, saludos >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lemarchand8679 en gmail.com Wed Aug 5 16:46:29 2020 From: lemarchand8679 en gmail.com (Lemarchand Barker) Date: Wed, 5 Aug 2020 17:46:29 -0300 Subject: [Python-es] [Consulta] isin() In-Reply-To: References: Message-ID: Buenísimo Ricardo, gracias ya lo anoto. Si lo de numpy y el array algo de eso vi muy por arriba, por ahora quiero familiarizarme con algunas cosas de momento. Gracias, saludos El mié., 5 ago. 2020 a las 17:23, Ricardo Cárdenes (< ricardo.cardenes en gmail.com>) escribió: > Por cierto, añado: observa que limité los criterios a columnas concretas. > Eso tiene perfecto sentido aquí porque cada columna tiene una semántica > diferente. Sin embargo, nada te impide aplicar isin a un DataFrame > entero. El problema es que el resultado puede no tener mucho sentido (o sí, > depende): > > >>> mask = df2.isin(['382.24', '617.12']) > >>> mask > lab pami > 19 False False > 629 False True > 23549 False False > 30087 False True > > > Obviamente, todas las entradas de la columna "lab" salen falsos. ¿Qué > sucede si usas esto como máscara? > > >>> df2[mask] > lab pami > 19 NaN NaN > 629 NaN 382.24 > 23549 NaN NaN > 30087 NaN 617.12 > > > Dado que no puedes discriminar filas enteras, la máscara no sabe lo que > estás queriendo hacer. Y por tanto va a mostrarte *todo*, pero poniendo > valores NaN ("not a number") en las celdas falsas. > > Por cierto, que la máscara no tiene por qué ser un DataSet. Puede ser por > ejemplo una simple lista, que se aplica al primer eje (filas, en este caso): > > >>> df2[[False, True, False, True]] > lab pami > 629 Alcon 382.24 > 30087 Fabra 617.12 > > > Y dado que Pandas se apoya en NumPy, imagino que puedes pasar un array de > NumPy también. > > > On Wed, Aug 5, 2020 at 10:12 AM Ricardo Cárdenes < > ricardo.cardenes en gmail.com> wrote: > >> Aparte de lo que te está contestando Darío (error en la entrada: 627.12 >> en lugar de 617.12), a tu otra pregunta... >> >> - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra >>> valores booleanos, en realidad no se que estaría chequeando >> >> >> isin te devuelve *siempre* un DataFrame de booleanos, siendo True las >> celdas donde hay coincidencia con alguno de los valores que pasaste a >> isin. Así pues, ninguna sorpresa. Ese dataframe de booleanos lo puedes >> utilizar como una *máscara* para filtrar los valores de otro DataFrame. >> Eso es lo que haces en tu ejemplo anterior: >> >> *print(df2[df2['pami'].isin(['382.24', '627.12'])])* >> >> >> Observa que estás usando df2['pami'].isin(['382.24', '627.12']) como >> índice del propio df2. En este caso, tu máscara está discriminando >> algunas filas: el resultado de df2[mascara] será un nuevo DataFrame que >> mostrará (normalmente esto se hace con una clase proxy que actúa como >> "vista") sólo esas filas. >> >> En tu segundo ejemplo no estás aplicando la máscara: la estás imprimiendo >> directamente y por tanto sólo ves los booleanos. >> >> Curiosidad: las máscaras se pueden combinar usando operaciones booleanas >> normales. Por ejemplo, combinando criterios sobre diferentes columnas: >> >> >>> l = df2['lab'].isin(['Alcon']) >> >>> p = df2['pami'].isin(['382.24', '617.12']) >> >>> l >> 19 False >> 629 False >> 23549 True >> 30087 False >> Name: lab, dtype: bool >> >>> p >> 19 False >> 629 True >> 23549 False >> 30087 True >> Name: pami, dtype: bool >> >>> l & p # AND lógico -> todas False porque no coincide nada >> 19 False >> 629 False >> 23549 False >> 30087 False >> dtype: bool >> >>> l | p # OR lógico -> combina las filas True de ambas >> 19 False >> 629 True >> 23549 True >> 30087 True >> dtype: bool >> >>> df2[l | p] # DataFrame con las filas que cumplen AL MENOS uno de >> los dos criterios >> lab pami >> 629 Alcon 382.24 >> 23549 Duncan 245.44 >> 30087 Fabra 617.12 >> >>> df2[l & p] # DataFrame con las filas que cumplen AMBOS criterios >> (está vacío, claro) >> Empty DataFrame >> Columns: [lab, pami] >> Index: [] >> >> >> Saludos, >> Ricardo >> >> On Wed, Aug 5, 2020 at 9:06 AM Lemarchand Barker < >> lemarchand8679 en gmail.com> wrote: >> >>> Hola siguiendo con la lectura de pandas, estoy probando isin() y no me >>> queda muy en claro bien que función cumple y qué tipo de uso le podría dar. >>> Mi ejemplo es el siguiente: >>> >>> leer = pd.read_csv('democsv.csv') >>> df = pd.DataFrame({ >>> 'lab': ['Abbott Diabetes', 'Alcon', 'Duncan', 'Fabra'], >>> 'pami': ['490.13', '382.24', '245.44', '617.12'],}, >>> index=['19', '629', '23549', '30087']) >>> df2 = df.copy() >>> >>> df2['pami'] = ['490.13', '382.24', '245.44', '617.12'] >>> *print(df2['pami'])* >>> >>> Salida: >>> 19 490.13 >>> 629 382.24 >>> 23549 245.44 >>> 30087 617.12 >>> Name: pami, dtype: object >>> >>> >>> *print(df2[df2['pami'].isin(['382.24', '627.12'])])* >>> >>> - En esta salida tengo un inconveniente, paso 2 valores: 382.24 y 627.12 >>> y solo muestra 1, qué estoy haciendo mal? >>> >>> Salida: >>> lab pami >>> 629 Alcon 382.24 >>> >>> >>> *print(df2.isin({'pami': [1, 3]}))* >>> >>> - Acá paso también 2 valores: 1 y 3, no entiendo porque me muestra >>> valores booleanos, en realidad no se que estaría chequeando >>> >>> Salida: >>> lab pami >>> 19 False False >>> 629 False False >>> 23549 False False >>> 30087 False False >>> >>> Muchas gracias, saludos >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From gvm2121 en gmail.com Fri Aug 7 16:29:47 2020 From: gvm2121 en gmail.com (Gonzalo V) Date: Fri, 7 Aug 2020 16:29:47 -0400 Subject: [Python-es] DESCARGAR PDF Message-ID: Buenas tardes a todos: Estoy creando una aplicación y quiero descargar un pdf. El pdf es generado desde latex, todo es funciona bien. El motor de latex, el pdf, todo salvo la descarga del pdf que no sé como se logra. He investigado en stackoverflow sin resultados. Me podrían ayudar a decirme qué estoy haciendo mal? def generar_pdf(request): prueba = request.session.get('contenedor') archivo_salida = open("prueba.tex","w") archivo_salida.write("\\documentclass[11pt,twoside,a4paper]{article}") archivo_salida.write("\\usepackage[utf8]{inputenc}") archivo_salida.write("\\begin{document}") archivo_salida.write("HOLA A TODOS") archivo_salida.write("\\end{document}") archivo_salida.close() ejecutable = "pdflatex {0}".format(archivo_salida.name) os.system(ejecutable) archivo_a_descargar = open("prueba.pdf","r") respuesta = HttpResponse(archivo_a_descargar,content_type='application/pdf') respuesta['Content-Disposition'] = 'attachment; filename="prueba.pdf"' return HttpResponse(archivo_a_descargar,content_type='application/pdf') El error final es: *binary mode doesn't take an encoding argument* muchas gracias por su ayuda Saludos, Gonzalo ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From virako.9 en gmail.com Tue Aug 11 01:50:08 2020 From: virako.9 en gmail.com (Victor Ramirez) Date: Tue, 11 Aug 2020 07:50:08 +0200 Subject: [Python-es] DESCARGAR PDF In-Reply-To: References: Message-ID: Hola Gonzalo, Creo que es porque no se está haciendo un read del fichero pdf que estás abriendo, yo normalmente hago lo siguiente: response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename=prueba.pdf' response.write(archivo.read()) return response Un saludo. El vie., 7 ago. 2020 a las 22:31, Gonzalo V () escribió: > Buenas tardes a todos: > Estoy creando una aplicación y quiero descargar un pdf. El pdf es generado > desde latex, todo es funciona bien. El motor de latex, el pdf, todo salvo > la descarga del pdf que no sé como se logra. He investigado en > stackoverflow sin resultados. > Me podrían ayudar a decirme qué estoy haciendo mal? > > def generar_pdf(request): > prueba = request.session.get('contenedor') > archivo_salida = open("prueba.tex","w") > archivo_salida.write("\\documentclass[11pt,twoside,a4paper]{article}") > archivo_salida.write("\\usepackage[utf8]{inputenc}") > archivo_salida.write("\\begin{document}") > archivo_salida.write("HOLA A TODOS") > archivo_salida.write("\\end{document}") > archivo_salida.close() > ejecutable = "pdflatex {0}".format(archivo_salida.name) > os.system(ejecutable) > archivo_a_descargar = open("prueba.pdf","r") > respuesta = > HttpResponse(archivo_a_descargar,content_type='application/pdf') > respuesta['Content-Disposition'] = 'attachment; filename="prueba.pdf"' > return HttpResponse(archivo_a_descargar,content_type='application/pdf') > > El error final es: > > *binary mode doesn't take an encoding argument* > > muchas gracias por su ayuda > > > Saludos, > Gonzalo > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > -- Víctor Ramírez de la Corte @virako http://wadobo.com/ @wadobo ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From msanchez en uninet.edu Tue Aug 11 07:52:05 2020 From: msanchez en uninet.edu (msanchez en uninet.edu) Date: Tue, 11 Aug 2020 12:52:05 +0100 Subject: [Python-es] DESCARGAR PDF In-Reply-To: References: Message-ID: <20200811125205.2b7b79bd@mariaonline.org> El Tue, 11 Aug 2020 07:50:08 +0200 Victor Ramirez dijo: > > archivo_a_descargar = open("prueba.pdf","r") > > respuesta = > > HttpResponse(archivo_a_descargar,content_type='application/pdf') > > respuesta['Content-Disposition'] = 'attachment; filename="prueba.pdf"' > > return HttpResponse(archivo_a_descargar,content_type='application/pdf') > > Hola: No lo veo claro, pero yo probaría con: archivo_a_descargar = open('prueba.pdf', 'r') respuesta = HttpResponse(content_type= 'application/pdf') respuesta['Content-Disposition'] = 'attachment; filename=prueba.pdf' respuesta.write(descargar.read()) return respuesta Saludos Miguel Sánchez From gvm2121 en gmail.com Tue Aug 11 09:47:49 2020 From: gvm2121 en gmail.com (Gonzalo V) Date: Tue, 11 Aug 2020 09:47:49 -0400 Subject: [Python-es] DESCARGAR PDF In-Reply-To: References: Message-ID: Gracias victor, era lo que tu dices, además había que abrirlo como binario con open(""archivo.pdf,'rb') muchas gracias Saludos, Gonzalo El mar., 11 ago. 2020 a las 1:51, Victor Ramirez () escribió: > Hola Gonzalo, > > Creo que es porque no se está haciendo un read del fichero pdf que estás > abriendo, yo normalmente hago lo siguiente: > > response = HttpResponse(content_type='application/pdf') > response['Content-Disposition'] = 'attachment; filename=prueba.pdf' > response.write(archivo.read()) > return response > > Un saludo. > > > El vie., 7 ago. 2020 a las 22:31, Gonzalo V () > escribió: > >> Buenas tardes a todos: >> Estoy creando una aplicación y quiero descargar un pdf. El pdf es >> generado desde latex, todo es funciona bien. El motor de latex, el pdf, >> todo salvo la descarga del pdf que no sé como se logra. He investigado en >> stackoverflow sin resultados. >> Me podrían ayudar a decirme qué estoy haciendo mal? >> >> def generar_pdf(request): >> prueba = request.session.get('contenedor') >> archivo_salida = open("prueba.tex","w") >> archivo_salida.write("\\documentclass[11pt,twoside,a4paper]{article}") >> archivo_salida.write("\\usepackage[utf8]{inputenc}") >> archivo_salida.write("\\begin{document}") >> archivo_salida.write("HOLA A TODOS") >> archivo_salida.write("\\end{document}") >> archivo_salida.close() >> ejecutable = "pdflatex {0}".format(archivo_salida.name) >> os.system(ejecutable) >> archivo_a_descargar = open("prueba.pdf","r") >> respuesta = >> HttpResponse(archivo_a_descargar,content_type='application/pdf') >> respuesta['Content-Disposition'] = 'attachment; filename="prueba.pdf"' >> return HttpResponse(archivo_a_descargar,content_type='application/pdf') >> >> El error final es: >> >> *binary mode doesn't take an encoding argument* >> >> muchas gracias por su ayuda >> >> >> Saludos, >> Gonzalo >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > > > -- > Víctor Ramírez de la Corte @virako > http://wadobo.com/ @wadobo > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From javierperez en perasalvino.es Wed Aug 12 05:45:16 2020 From: javierperez en perasalvino.es (Javier Perez) Date: Wed, 12 Aug 2020 11:45:16 +0200 Subject: [Python-es] Lio con lista que contiene diccionarios Message-ID: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Buenos días a todos, Perdonar, es una consulta tonta pero no me aclaro. Veamos: Tengo una lista que contiene a 19 diccionarios. Todos con el mismo esquema. O sea que podría ser una tabla. La duda me surge a la hora de mostrar de todos los diccionarios el valor de algunas claves. Os pongo solo dos a modo de ejemplo: print(fondos_coleccion) [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', 'valor_raspado': 683.63}, {'nombre': 'BankinterTecnología R FI', 'ISBN': 'ES0114797030', 'valor_raspado': 689.92}] Lo que me gustaría mostrar es, por ejemplo: Bankinter Indice Japon, F - ES0114104039 BankinterTecnología R FI- ES0114797030 Muchísimas gracias por la ayuda, -- Javier Pérez http://es.linkedin.com/in/javierperez1 http://www.perasalvino.es/ From garcia.marc en gmail.com Wed Aug 12 06:38:12 2020 From: garcia.marc en gmail.com (Marc Garcia) Date: Wed, 12 Aug 2020 11:38:12 +0100 Subject: [Python-es] Lio con lista que contiene diccionarios In-Reply-To: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> References: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Message-ID: Te puede interesar pandas: ``` import pandas pandas.DataFrame(fondos_coleccion) ``` Solo para eso igual es una dependencia demasiado grande (aunque creo que ells la manera más rápida). Pero si necesitas filtrar, agrupar, añadir columnas, exportar a csv u otros formatos... Te vendrá bien. On Wed, 12 Aug 2020, 11:31 Javier Perez, wrote: > Buenos días a todos, > > > Perdonar, es una consulta tonta pero no me aclaro. > > Veamos: Tengo una lista que contiene a 19 diccionarios. Todos con el mismo > esquema. O sea que podría ser una tabla. > > La duda me surge a la hora de mostrar de todos los diccionarios el valor > de algunas claves. > > Os pongo solo dos a modo de ejemplo: > print(fondos_coleccion) > [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', > 'valor_raspado': 683.63}, {'nombre': 'BankinterTecnología R FI', 'ISBN': > 'ES0114797030', 'valor_raspado': 689.92}] > > > Lo que me gustaría mostrar es, por ejemplo: > Bankinter Indice Japon, F - ES0114104039 > BankinterTecnología R FI- ES0114797030 > > > > Muchísimas gracias por la ayuda, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From javierperez en perasalvino.es Wed Aug 12 07:53:16 2020 From: javierperez en perasalvino.es (Javier Perez) Date: Wed, 12 Aug 2020 13:53:16 +0200 Subject: [Python-es] Lio con lista que contiene diccionarios In-Reply-To: References: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Message-ID: Gracias Marc pero descarte hacerlo con Pandas. Saludos, -- Javier Pérez http://es.linkedin.com/in/javierperez1 http://www.perasalvino.es/ > El 12 ago 2020, a las 12:38, Marc Garcia escribió: > > Te puede interesar pandas: > > ``` > import pandas > > pandas.DataFrame(fondos_coleccion) > ``` > > Solo para eso igual es una dependencia demasiado grande (aunque creo que ells la manera más rápida). Pero si necesitas filtrar, agrupar, añadir columnas, exportar a csv u otros formatos... Te vendrá bien. > > > > On Wed, 12 Aug 2020, 11:31 Javier Perez, > wrote: > Buenos días a todos, > > > Perdonar, es una consulta tonta pero no me aclaro. > > Veamos: Tengo una lista que contiene a 19 diccionarios. Todos con el mismo esquema. O sea que podría ser una tabla. > > La duda me surge a la hora de mostrar de todos los diccionarios el valor de algunas claves. > > Os pongo solo dos a modo de ejemplo: > print(fondos_coleccion) > [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', 'valor_raspado': 683.63}, {'nombre': 'BankinterTecnología R FI', 'ISBN': 'ES0114797030', 'valor_raspado': 689.92}] > > > Lo que me gustaría mostrar es, por ejemplo: > Bankinter Indice Japon, F - ES0114104039 > BankinterTecnología R FI- ES0114797030 > > > > Muchísimas gracias por la ayuda, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alexis.roda.villalonga en gmail.com Wed Aug 12 08:07:14 2020 From: alexis.roda.villalonga en gmail.com (Alexis Roda) Date: Wed, 12 Aug 2020 14:07:14 +0200 Subject: [Python-es] Lio con lista que contiene diccionarios In-Reply-To: References: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Message-ID: Hola, Si quieres hacerlo con python "puro y duro" solo tienes que iterar sobre la lista de diccionarios y procesarlos uno a uno. Algo como: for diccionario in lista_diccionarios: print(diccionario["nombre"], diccionario["ISBN"]) Dependiendo de lo que quieras hacer te pueden resultar útiles las *list/dict comprehension,* los generadores y otras cosas. Por ejemplo: tabla_nombres = [d["nombre"] for d in lista_diccionarios] Espero que te sirva. Saludos Missatge de Javier Perez del dia dc., 12 d?ag. 2020 a les 13:53: > Gracias Marc pero descarte hacerlo con Pandas. > > > > > > > Saludos, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > El 12 ago 2020, a las 12:38, Marc Garcia escribió: > > Te puede interesar pandas: > > ``` > import pandas > > pandas.DataFrame(fondos_coleccion) > ``` > > Solo para eso igual es una dependencia demasiado grande (aunque creo que > ells la manera más rápida). Pero si necesitas filtrar, agrupar, añadir > columnas, exportar a csv u otros formatos... Te vendrá bien. > > > > On Wed, 12 Aug 2020, 11:31 Javier Perez, > wrote: > >> Buenos días a todos, >> >> >> Perdonar, es una consulta tonta pero no me aclaro. >> >> Veamos: Tengo una lista que contiene a 19 diccionarios. Todos con el >> mismo esquema. O sea que podría ser una tabla. >> >> La duda me surge a la hora de mostrar de todos los diccionarios el valor >> de algunas claves. >> >> Os pongo solo dos a modo de ejemplo: >> print(fondos_coleccion) >> [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', >> 'valor_raspado': 683.63}, {'nombre': 'BankinterTecnología R FI', 'ISBN': >> 'ES0114797030', 'valor_raspado': 689.92}] >> >> >> Lo que me gustaría mostrar es, por ejemplo: >> Bankinter Indice Japon, F - ES0114104039 >> BankinterTecnología R FI- ES0114797030 >> >> >> >> Muchísimas gracias por la ayuda, >> >> -- >> Javier Pérez >> http://es.linkedin.com/in/javierperez1 >> http://www.perasalvino.es/ >> >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From garcia.marc en gmail.com Wed Aug 12 08:15:39 2020 From: garcia.marc en gmail.com (Marc Garcia) Date: Wed, 12 Aug 2020 13:15:39 +0100 Subject: [Python-es] Lio con lista que contiene diccionarios In-Reply-To: References: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Message-ID: Si solo quieres hacer eso, esto es lo mas sencillo: print('\n'.join('{nombre} - {ISBN}'.format(**row) for row in fondos_coleccion)) On Wed, Aug 12, 2020 at 1:07 PM Alexis Roda < alexis.roda.villalonga en gmail.com> wrote: > Hola, > > Si quieres hacerlo con python "puro y duro" solo tienes que iterar sobre > la lista de diccionarios y procesarlos uno a uno. Algo como: > > for diccionario in lista_diccionarios: > print(diccionario["nombre"], diccionario["ISBN"]) > > > Dependiendo de lo que quieras hacer te pueden resultar útiles las *list/dict > comprehension,* los generadores y otras cosas. Por ejemplo: > > tabla_nombres = [d["nombre"] for d in lista_diccionarios] > > > Espero que te sirva. > > > Saludos > > Missatge de Javier Perez del dia dc., 12 > d?ag. 2020 a les 13:53: > >> Gracias Marc pero descarte hacerlo con Pandas. >> >> >> >> >> >> >> Saludos, >> >> -- >> Javier Pérez >> http://es.linkedin.com/in/javierperez1 >> http://www.perasalvino.es/ >> >> >> >> >> El 12 ago 2020, a las 12:38, Marc Garcia >> escribió: >> >> Te puede interesar pandas: >> >> ``` >> import pandas >> >> pandas.DataFrame(fondos_coleccion) >> ``` >> >> Solo para eso igual es una dependencia demasiado grande (aunque creo que >> ells la manera más rápida). Pero si necesitas filtrar, agrupar, añadir >> columnas, exportar a csv u otros formatos... Te vendrá bien. >> >> >> >> On Wed, 12 Aug 2020, 11:31 Javier Perez, >> wrote: >> >>> Buenos días a todos, >>> >>> >>> Perdonar, es una consulta tonta pero no me aclaro. >>> >>> Veamos: Tengo una lista que contiene a 19 diccionarios. Todos con el >>> mismo esquema. O sea que podría ser una tabla. >>> >>> La duda me surge a la hora de mostrar de todos los diccionarios el valor >>> de algunas claves. >>> >>> Os pongo solo dos a modo de ejemplo: >>> print(fondos_coleccion) >>> [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', >>> 'valor_raspado': 683.63}, {'nombre': 'BankinterTecnología R FI', 'ISBN': >>> 'ES0114797030', 'valor_raspado': 689.92}] >>> >>> >>> Lo que me gustaría mostrar es, por ejemplo: >>> Bankinter Indice Japon, F - ES0114104039 >>> BankinterTecnología R FI- ES0114797030 >>> >>> >>> >>> Muchísimas gracias por la ayuda, >>> >>> -- >>> Javier Pérez >>> http://es.linkedin.com/in/javierperez1 >>> http://www.perasalvino.es/ >>> >>> >>> >>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From perysoy en gmail.com Wed Aug 12 10:24:02 2020 From: perysoy en gmail.com (PeRy) Date: Wed, 12 Aug 2020 16:24:02 +0200 Subject: [Python-es] Lio con lista que contiene diccionarios In-Reply-To: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> References: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Message-ID: Hola! Primero accedes al elemento de la lista, y de ahi a la key del diccionario: fondos_coleccion[0]['nombre'] ejemplo: In [1]: fondos_coleccion = [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', 'valor_raspado': 683.63}, ...: {'nombre': 'BankinterTecnología R FI', 'ISBN': 'ES0114797030', 'valor_raspado': 689.92}] In [2]: for i in fondos_coleccion: ...: print(i['nombre'] + ' - ' + i['ISBN']) # i recorre fondos_coleccion, primero: [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', 'valor_raspado': 683.63} y de ahí accedes a la key. ...: Bankinter Indice Japon, FI - ES0114104039 BankinterTecnología R FI - ES0114797030 Echa un vistazo por aqui: https://docs.python.org/es/3/tutorial/datastructures.html#dictionaries El mié., 12 ago. 2020 a las 12:32, Javier Perez () escribió: > Buenos días a todos, > > > Perdonar, es una consulta tonta pero no me aclaro. > > Veamos: Tengo una lista que contiene a 19 diccionarios. Todos con el mismo > esquema. O sea que podría ser una tabla. > > La duda me surge a la hora de mostrar de todos los diccionarios el valor > de algunas claves. > > Os pongo solo dos a modo de ejemplo: > print(fondos_coleccion) > [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', > 'valor_raspado': 683.63}, {'nombre': 'BankinterTecnología R FI', 'ISBN': > 'ES0114797030', 'valor_raspado': 689.92}] > > > Lo que me gustaría mostrar es, por ejemplo: > Bankinter Indice Japon, F - ES0114104039 > BankinterTecnología R FI- ES0114797030 > > > > Muchísimas gracias por la ayuda, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From virako.9 en gmail.com Thu Aug 13 02:58:23 2020 From: virako.9 en gmail.com (Victor Ramirez) Date: Thu, 13 Aug 2020 08:58:23 +0200 Subject: [Python-es] Lio con lista que contiene diccionarios In-Reply-To: References: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Message-ID: Hola Javier, Una opción interesante podría ser crear una clase para esos datos y luego imprimir con el formato que quieras: class Banco: def __init__(self, element): self.nombre = element.get('nombre') self.isbn = element.get('ISBN') self.valor_raspado = element.get('valor_raspado') def __str__(self): return "{} - {}".format(self.nombre, self.isbn) lista_bancos = [] for element in fondos_coleccion: banco = Banco(element) lista_bancos.append(banco) # Con el objeto banco podemos imprimir lo que queramos de forma sencilla print(banco) # nos imprime el resultado de la función __str__ print(banco.isbn) # imprimimos solo los isbn Si es solo para tratar los datos esos y no tiene pensamiento de crecer, igual no tiene sentido, pero si vas a trabajar bastante con los datos y a futuro puede que crezca, esta opción podría ser interesante. Un saludo. El mié., 12 ago. 2020 a las 16:25, PeRy () escribió: > Hola! > > Primero accedes al elemento de la lista, y de ahi a la key del > diccionario: fondos_coleccion[0]['nombre'] > > ejemplo: > > In [1]: fondos_coleccion = [{'nombre': 'Bankinter Indice Japon, FI', > 'ISBN': 'ES0114104039', 'valor_raspado': 683.63}, > ...: {'nombre': 'BankinterTecnología R FI', 'ISBN': 'ES0114797030', > 'valor_raspado': 689.92}] > > In [2]: for i in fondos_coleccion: > ...: print(i['nombre'] + ' - ' + i['ISBN']) # i recorre > fondos_coleccion, primero: [{'nombre': 'Bankinter Indice Japon, FI', > 'ISBN': 'ES0114104039', 'valor_raspado': 683.63} y de ahí accedes a la key. > ...: > Bankinter Indice Japon, FI - ES0114104039 > BankinterTecnología R FI - ES0114797030 > > Echa un vistazo por aqui: > https://docs.python.org/es/3/tutorial/datastructures.html#dictionaries > > El mié., 12 ago. 2020 a las 12:32, Javier Perez (< > javierperez en perasalvino.es>) escribió: > >> Buenos días a todos, >> >> >> Perdonar, es una consulta tonta pero no me aclaro. >> >> Veamos: Tengo una lista que contiene a 19 diccionarios. Todos con el >> mismo esquema. O sea que podría ser una tabla. >> >> La duda me surge a la hora de mostrar de todos los diccionarios el valor >> de algunas claves. >> >> Os pongo solo dos a modo de ejemplo: >> print(fondos_coleccion) >> [{'nombre': 'Bankinter Indice Japon, FI', 'ISBN': 'ES0114104039', >> 'valor_raspado': 683.63}, {'nombre': 'BankinterTecnología R FI', 'ISBN': >> 'ES0114797030', 'valor_raspado': 689.92}] >> >> >> Lo que me gustaría mostrar es, por ejemplo: >> Bankinter Indice Japon, F - ES0114104039 >> BankinterTecnología R FI- ES0114797030 >> >> >> >> Muchísimas gracias por la ayuda, >> >> -- >> Javier Pérez >> http://es.linkedin.com/in/javierperez1 >> http://www.perasalvino.es/ >> >> >> >> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > -- Víctor Ramírez de la Corte @virako http://wadobo.com/ @wadobo ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From pych3m4 en gmail.com Thu Aug 13 04:40:10 2020 From: pych3m4 en gmail.com (Chema Cortes) Date: Thu, 13 Aug 2020 10:40:10 +0200 Subject: [Python-es] Lio con lista que contiene diccionarios In-Reply-To: References: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Message-ID: El jue., 13 ago. 2020 a las 8:59, Victor Ramirez () escribió: > Hola Javier, > > Una opción interesante podría ser crear una clase para esos datos y luego > imprimir con el formato que quieras: > > class Banco: > def __init__(self, element): > self.nombre = element.get('nombre') > self.isbn = element.get('ISBN') > self.valor_raspado = element.get('valor_raspado') > def __str__(self): > return "{} - {}".format(self.nombre, self.isbn) > > lista_bancos = [] > for element in fondos_coleccion: > banco = Banco(element) > lista_bancos.append(banco) > # Con el objeto banco podemos imprimir lo que queramos de forma > sencilla > print(banco) # nos imprime el resultado de la función __str__ > print(banco.isbn) # imprimimos solo los isbn > > Si es solo para tratar los datos esos y no tiene pensamiento de crecer, > igual no tiene sentido, pero si vas a trabajar bastante con los datos y a > futuro puede que crezca, esta opción podría ser interesante. > > Una mejor alternativa sería usar *dataclasses:* *@dataclassclass Coleccion: nombre: str isbn: str valor: float * * def __str__(self): return f"{self.nombre[:25]:25} - {self.isbn}"* coleccion = [Coleccion(*d.values()) for d in fondos_coleccion] for col in coleccion: print(col) Resultado: Bankinter Indice Japon, F - ES0114104039 BankinterTecnología R FI - ES0114797030 -- Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": https://blog.ch3m4.org Buscador Python Hispano: http://busca.ch3m4.org ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From javierperez en perasalvino.es Thu Aug 13 07:39:28 2020 From: javierperez en perasalvino.es (Javier Perez) Date: Thu, 13 Aug 2020 13:39:28 +0200 Subject: [Python-es] Lio con lista que contiene diccionarios In-Reply-To: References: <875D2004-1B51-4074-87B0-76444B370AFC@perasalvino.es> Message-ID: <60419085-FF41-4DA1-AAE8-56BFA8B55192@perasalvino.es> Muchísimas gracias a todos. Ahora me pongo a ver y a analizar toda la información. Saludos, -- Javier Pérez http://es.linkedin.com/in/javierperez1 http://www.perasalvino.es/ > El 13 ago 2020, a las 10:40, Chema Cortes escribió: > > > El jue., 13 ago. 2020 a las 8:59, Victor Ramirez (>) escribió: > Hola Javier, > > Una opción interesante podría ser crear una clase para esos datos y luego imprimir con el formato que quieras: > > class Banco: > def __init__(self, element): > self.nombre = element.get('nombre') > self.isbn = element.get('ISBN') > self.valor_raspado = element.get('valor_raspado') > def __str__(self): > return "{} - {}".format(self.nombre, self.isbn) > > lista_bancos = [] > for element in fondos_coleccion: > banco = Banco(element) > lista_bancos.append(banco) > # Con el objeto banco podemos imprimir lo que queramos de forma sencilla > print(banco) # nos imprime el resultado de la función __str__ > print(banco.isbn) # imprimimos solo los isbn > > Si es solo para tratar los datos esos y no tiene pensamiento de crecer, igual no tiene sentido, pero si vas a trabajar bastante con los datos y a futuro puede que crezca, esta opción podría ser interesante. > > > Una mejor alternativa sería usar dataclasses: > > @dataclass > class Coleccion: > nombre: str > isbn: str > valor: float > > def __str__(self): > return f"{self.nombre[:25]:25} - {self.isbn}" > > coleccion = [Coleccion(*d.values()) for d in fondos_coleccion] > for col in coleccion: > print(col) > Resultado: > > Bankinter Indice Japon, F - ES0114104039 > BankinterTecnología R FI - ES0114797030 > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": https://blog.ch3m4.org > Buscador Python Hispano: http://busca.ch3m4.org _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Mon Aug 17 09:44:02 2020 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Mon, 17 Aug 2020 14:44:02 +0100 Subject: [Python-es] problema con "regular expression" Message-ID: Hola, tengo una serie de lineas, todas con el mismo formato: : donde es una sola palabra, y es una frase. Intentaba "parsearlas" con algo como esto: pattern = re.compile("^(?P(.*)): (?P(.*))$") parse = pattern.match(line) groups = parse.groupdict() print( groups["type"] ) print( groups["value"] ) Funciona bien, salvo que incluya el signo de los dos puntos. Por ejemplo, para one: two: three four Me devuelve type = "one: two" y value "three four", en lugar de "one" y "two: three four" respectivamente. ?Como arreglo ese pattern para que el primer "lookahead" pare en el primer ":"? [Creo que se nota que tengo poca experiencia con regex] Muchas gracias. Un saludo, Jose From kelertxiki en gmail.com Mon Aug 17 10:25:31 2020 From: kelertxiki en gmail.com (Ander Garmendia) Date: Mon, 17 Aug 2020 16:25:31 +0200 Subject: [Python-es] problema con "regular expression" In-Reply-To: References: Message-ID: Hola, Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo que pillen". Si quieres limitar el match al primer grupo, añade un ? al carácter de corte: pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") Si buscas "greedy" en el apartado de la librería "re" en la documentacion oficial, lo explican mucho mejor. Un saludo. Jose Caballero igorleak hau idatzi zuen (2020 abu. 17, al. 15:45): > Hola, > > tengo una serie de lineas, todas con el mismo formato: > > : > > donde es una sola palabra, y es una frase. > Intentaba "parsearlas" con algo como esto: > > pattern = re.compile("^(?P(.*)): (?P(.*))$") > parse = pattern.match(line) > groups = parse.groupdict() > print( groups["type"] ) > print( groups["value"] ) > > Funciona bien, salvo que incluya el signo de los dos puntos. > Por ejemplo, para > > one: two: three four > > Me devuelve type = "one: two" y value "three four", en lugar de "one" > y "two: three four" respectivamente. > > ?Como arreglo ese pattern para que el primer "lookahead" pare en el primer > ":"? > [Creo que se nota que tengo poca experiencia con regex] > > Muchas gracias. > Un saludo, > Jose > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Mon Aug 17 10:35:44 2020 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Mon, 17 Aug 2020 15:35:44 +0100 Subject: [Python-es] problema con "regular expression" In-Reply-To: References: Message-ID: no parece: >>> p = re.compile("^(?P(.*)):? (?P([^:]*))$") >>> >>> l = "type: word: foo bar" >>> >>> m = p.match(l) >>> print m.groupdict() {'type': 'type: word: foo', 'value': 'bar'} >>> Pero voy a echar un vistazo a "greedy". Muchas gracias. Jose El lun., 17 ago. 2020 a las 15:25, Ander Garmendia () escribió: > > Hola, > > Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo que pillen". Si quieres limitar el match al primer grupo, añade un ? al carácter de corte: > > pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") > > Si buscas "greedy" en el apartado de la librería "re" en la documentacion oficial, lo explican mucho mejor. > > Un saludo. > > Jose Caballero igorleak hau idatzi zuen (2020 abu. 17, al. 15:45): >> >> Hola, >> >> tengo una serie de lineas, todas con el mismo formato: >> >> : >> >> donde es una sola palabra, y es una frase. >> Intentaba "parsearlas" con algo como esto: >> >> pattern = re.compile("^(?P(.*)): (?P(.*))$") >> parse = pattern.match(line) >> groups = parse.groupdict() >> print( groups["type"] ) >> print( groups["value"] ) >> >> Funciona bien, salvo que incluya el signo de los dos puntos. >> Por ejemplo, para >> >> one: two: three four >> >> Me devuelve type = "one: two" y value "three four", en lugar de "one" >> y "two: three four" respectivamente. >> >> ?Como arreglo ese pattern para que el primer "lookahead" pare en el primer ":"? >> [Creo que se nota que tengo poca experiencia con regex] >> >> Muchas gracias. >> Un saludo, >> Jose >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es From kelertxiki en gmail.com Mon Aug 17 10:42:44 2020 From: kelertxiki en gmail.com (Ander Garmendia) Date: Mon, 17 Aug 2020 16:42:44 +0200 Subject: [Python-es] problema con "regular expression" In-Reply-To: References: Message-ID: Uuups, te he pegado una expresión que está mal. La correcta es esta: pattern = re.compile("^(?P(.*)):? (?P(.*))$") Perdona las molestias. Jose Caballero igorleak hau idatzi zuen (2020 abu. 17, al. 16:37): > no parece: > > >>> p = re.compile("^(?P(.*)):? (?P([^:]*))$") > >>> > >>> l = "type: word: foo bar" > >>> > >>> m = p.match(l) > >>> print m.groupdict() > {'type': 'type: word: foo', 'value': 'bar'} > >>> > > Pero voy a echar un vistazo a "greedy". > Muchas gracias. > > Jose > > El lun., 17 ago. 2020 a las 15:25, Ander Garmendia > () escribió: > > > > Hola, > > > > Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo > que pillen". Si quieres limitar el match al primer grupo, añade un ? al > carácter de corte: > > > > pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") > > > > Si buscas "greedy" en el apartado de la librería "re" en la > documentacion oficial, lo explican mucho mejor. > > > > Un saludo. > > > > Jose Caballero igorleak hau idatzi zuen > (2020 abu. 17, al. 15:45): > >> > >> Hola, > >> > >> tengo una serie de lineas, todas con el mismo formato: > >> > >> : > >> > >> donde es una sola palabra, y es una frase. > >> Intentaba "parsearlas" con algo como esto: > >> > >> pattern = re.compile("^(?P(.*)): (?P(.*))$") > >> parse = pattern.match(line) > >> groups = parse.groupdict() > >> print( groups["type"] ) > >> print( groups["value"] ) > >> > >> Funciona bien, salvo que incluya el signo de los dos puntos. > >> Por ejemplo, para > >> > >> one: two: three four > >> > >> Me devuelve type = "one: two" y value "three four", en lugar de "one" > >> y "two: three four" respectivamente. > >> > >> ?Como arreglo ese pattern para que el primer "lookahead" pare en el > primer ":"? > >> [Creo que se nota que tengo poca experiencia con regex] > >> > >> Muchas gracias. > >> Un saludo, > >> Jose > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> https://mail.python.org/mailman/listinfo/python-es > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alexis.roda.villalonga en gmail.com Mon Aug 17 10:43:39 2020 From: alexis.roda.villalonga en gmail.com (Alexis Roda) Date: Mon, 17 Aug 2020 16:43:39 +0200 Subject: [Python-es] problema con "regular expression" In-Reply-To: References: Message-ID: Otra solución es utilizar expresiones más precisas/restrictivas/específicas. Para capturar type, dependiendo de los detalles concretos, puedes utilizar alguna de las expresiones "[^:]*", "[a-zA-Z]*" o "\w*" en lugar de ".*" Missatge de Jose Caballero del dia dl., 17 d?ag. 2020 a les 15:44: > Hola, > > tengo una serie de lineas, todas con el mismo formato: > > : > > donde es una sola palabra, y es una frase. > Intentaba "parsearlas" con algo como esto: > > pattern = re.compile("^(?P(.*)): (?P(.*))$") > parse = pattern.match(line) > groups = parse.groupdict() > print( groups["type"] ) > print( groups["value"] ) > > Funciona bien, salvo que incluya el signo de los dos puntos. > Por ejemplo, para > > one: two: three four > > Me devuelve type = "one: two" y value "three four", en lugar de "one" > y "two: three four" respectivamente. > > ?Como arreglo ese pattern para que el primer "lookahead" pare en el primer > ":"? > [Creo que se nota que tengo poca experiencia con regex] > > Muchas gracias. > Un saludo, > Jose > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alexis.roda.villalonga en gmail.com Mon Aug 17 10:59:38 2020 From: alexis.roda.villalonga en gmail.com (Alexis Roda) Date: Mon, 17 Aug 2020 16:59:38 +0200 Subject: [Python-es] problema con "regular expression" In-Reply-To: References: Message-ID: El ? va junto al * que queremos que no sea codicioso: pattern = re.compile("^(?P(.*?)): (?P(.*))$") Ponerlo junto al : hace que ese carácter sea opcional. In [20]: p = re.compile("^(?P(.*)):? (?P(.*))$") In [21]: l = "hola mundo" In [22]: m = p.match(l) In [23]: m.groupdict() Out[23]: {'type': 'hola', 'value': 'mundo'} Missatge de Ander Garmendia del dia dl., 17 d?ag. 2020 a les 16:43: > Uuups, te he pegado una expresión que está mal. La correcta es esta: > > pattern = re.compile("^(?P(.*)):? (?P(.*))$") > > Perdona las molestias. > > Jose Caballero igorleak hau idatzi zuen (2020 > abu. 17, al. 16:37): > >> no parece: >> >> >>> p = re.compile("^(?P(.*)):? (?P([^:]*))$") >> >>> >> >>> l = "type: word: foo bar" >> >>> >> >>> m = p.match(l) >> >>> print m.groupdict() >> {'type': 'type: word: foo', 'value': 'bar'} >> >>> >> >> Pero voy a echar un vistazo a "greedy". >> Muchas gracias. >> >> Jose >> >> El lun., 17 ago. 2020 a las 15:25, Ander Garmendia >> () escribió: >> > >> > Hola, >> > >> > Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo >> que pillen". Si quieres limitar el match al primer grupo, añade un ? al >> carácter de corte: >> > >> > pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") >> > >> > Si buscas "greedy" en el apartado de la librería "re" en la >> documentacion oficial, lo explican mucho mejor. >> > >> > Un saludo. >> > >> > Jose Caballero igorleak hau idatzi zuen >> (2020 abu. 17, al. 15:45): >> >> >> >> Hola, >> >> >> >> tengo una serie de lineas, todas con el mismo formato: >> >> >> >> : >> >> >> >> donde es una sola palabra, y es una frase. >> >> Intentaba "parsearlas" con algo como esto: >> >> >> >> pattern = re.compile("^(?P(.*)): (?P(.*))$") >> >> parse = pattern.match(line) >> >> groups = parse.groupdict() >> >> print( groups["type"] ) >> >> print( groups["value"] ) >> >> >> >> Funciona bien, salvo que incluya el signo de los dos puntos. >> >> Por ejemplo, para >> >> >> >> one: two: three four >> >> >> >> Me devuelve type = "one: two" y value "three four", en lugar de "one" >> >> y "two: three four" respectivamente. >> >> >> >> ?Como arreglo ese pattern para que el primer "lookahead" pare en el >> primer ":"? >> >> [Creo que se nota que tengo poca experiencia con regex] >> >> >> >> Muchas gracias. >> >> Un saludo, >> >> Jose >> >> _______________________________________________ >> >> Python-es mailing list >> >> Python-es en python.org >> >> https://mail.python.org/mailman/listinfo/python-es >> > >> > _______________________________________________ >> > Python-es mailing list >> > Python-es en python.org >> > https://mail.python.org/mailman/listinfo/python-es >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From kelertxiki en gmail.com Mon Aug 17 11:05:17 2020 From: kelertxiki en gmail.com (Ander Garmendia) Date: Mon, 17 Aug 2020 17:05:17 +0200 Subject: [Python-es] problema con "regular expression" In-Reply-To: References: Message-ID: Exacto, gracias por la corrección. Alexis Roda igorleak hau idatzi zuen (2020 abu. 17, al. 17:01): > El ? va junto al * que queremos que no sea codicioso: > > pattern = re.compile("^(?P(.*?)): (?P(.*))$") > > Ponerlo junto al : hace que ese carácter sea opcional. > > In [20]: p = re.compile("^(?P(.*)):? (?P(.*))$") > > In [21]: l = "hola mundo" > > In [22]: m = p.match(l) > > In [23]: m.groupdict() > Out[23]: {'type': 'hola', 'value': 'mundo'} > > > > > Missatge de Ander Garmendia del dia dl., 17 d?ag. > 2020 a les 16:43: > >> Uuups, te he pegado una expresión que está mal. La correcta es esta: >> >> pattern = re.compile("^(?P(.*)):? (?P(.*))$") >> >> Perdona las molestias. >> >> Jose Caballero igorleak hau idatzi zuen (2020 >> abu. 17, al. 16:37): >> >>> no parece: >>> >>> >>> p = re.compile("^(?P(.*)):? (?P([^:]*))$") >>> >>> >>> >>> l = "type: word: foo bar" >>> >>> >>> >>> m = p.match(l) >>> >>> print m.groupdict() >>> {'type': 'type: word: foo', 'value': 'bar'} >>> >>> >>> >>> Pero voy a echar un vistazo a "greedy". >>> Muchas gracias. >>> >>> Jose >>> >>> El lun., 17 ago. 2020 a las 15:25, Ander Garmendia >>> () escribió: >>> > >>> > Hola, >>> > >>> > Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo >>> que pillen". Si quieres limitar el match al primer grupo, añade un ? al >>> carácter de corte: >>> > >>> > pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") >>> > >>> > Si buscas "greedy" en el apartado de la librería "re" en la >>> documentacion oficial, lo explican mucho mejor. >>> > >>> > Un saludo. >>> > >>> > Jose Caballero igorleak hau idatzi zuen >>> (2020 abu. 17, al. 15:45): >>> >> >>> >> Hola, >>> >> >>> >> tengo una serie de lineas, todas con el mismo formato: >>> >> >>> >> : >>> >> >>> >> donde es una sola palabra, y es una frase. >>> >> Intentaba "parsearlas" con algo como esto: >>> >> >>> >> pattern = re.compile("^(?P(.*)): (?P(.*))$") >>> >> parse = pattern.match(line) >>> >> groups = parse.groupdict() >>> >> print( groups["type"] ) >>> >> print( groups["value"] ) >>> >> >>> >> Funciona bien, salvo que incluya el signo de los dos puntos. >>> >> Por ejemplo, para >>> >> >>> >> one: two: three four >>> >> >>> >> Me devuelve type = "one: two" y value "three four", en lugar de "one" >>> >> y "two: three four" respectivamente. >>> >> >>> >> ?Como arreglo ese pattern para que el primer "lookahead" pare en el >>> primer ":"? >>> >> [Creo que se nota que tengo poca experiencia con regex] >>> >> >>> >> Muchas gracias. >>> >> Un saludo, >>> >> Jose >>> >> _______________________________________________ >>> >> Python-es mailing list >>> >> Python-es en python.org >>> >> https://mail.python.org/mailman/listinfo/python-es >>> > >>> > _______________________________________________ >>> > Python-es mailing list >>> > Python-es en python.org >>> > https://mail.python.org/mailman/listinfo/python-es >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From ricardo.cardenes en gmail.com Mon Aug 17 16:21:24 2020 From: ricardo.cardenes en gmail.com (=?UTF-8?Q?Ricardo_C=C3=A1rdenes?=) Date: Mon, 17 Aug 2020 10:21:24 -1000 Subject: [Python-es] problema con "regular expression" In-Reply-To: References: Message-ID: > > Pero voy a echar un vistazo a "greedy". No tiene mucha ciencia. Cuando aplicamos una expresión regular se nos presenta una duda. ¿Debería buscarse *la máxima extensión de texto que cumpla con ella, o sólo la mínima*? La primera opción es la "codiciosa" y es la que se aplica si no indicas lo contrario. On Mon, Aug 17, 2020 at 4:36 AM Jose Caballero wrote: > no parece: > > >>> p = re.compile("^(?P(.*)):? (?P([^:]*))$") > >>> > >>> l = "type: word: foo bar" > >>> > >>> m = p.match(l) > >>> print m.groupdict() > {'type': 'type: word: foo', 'value': 'bar'} > >>> > > Pero voy a echar un vistazo a "greedy". > Muchas gracias. > > Jose > > El lun., 17 ago. 2020 a las 15:25, Ander Garmendia > () escribió: > > > > Hola, > > > > Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo > que pillen". Si quieres limitar el match al primer grupo, añade un ? al > carácter de corte: > > > > pattern = re.compile("^(?P(.*)):? (?P([^:]*))$") > > > > Si buscas "greedy" en el apartado de la librería "re" en la > documentacion oficial, lo explican mucho mejor. > > > > Un saludo. > > > > Jose Caballero igorleak hau idatzi zuen > (2020 abu. 17, al. 15:45): > >> > >> Hola, > >> > >> tengo una serie de lineas, todas con el mismo formato: > >> > >> : > >> > >> donde es una sola palabra, y es una frase. > >> Intentaba "parsearlas" con algo como esto: > >> > >> pattern = re.compile("^(?P(.*)): (?P(.*))$") > >> parse = pattern.match(line) > >> groups = parse.groupdict() > >> print( groups["type"] ) > >> print( groups["value"] ) > >> > >> Funciona bien, salvo que incluya el signo de los dos puntos. > >> Por ejemplo, para > >> > >> one: two: three four > >> > >> Me devuelve type = "one: two" y value "three four", en lugar de "one" > >> y "two: three four" respectivamente. > >> > >> ?Como arreglo ese pattern para que el primer "lookahead" pare en el > primer ":"? > >> [Creo que se nota que tengo poca experiencia con regex] > >> > >> Muchas gracias. > >> Un saludo, > >> Jose > >> _______________________________________________ > >> Python-es mailing list > >> Python-es en python.org > >> https://mail.python.org/mailman/listinfo/python-es > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Tue Aug 18 03:13:10 2020 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Tue, 18 Aug 2020 08:13:10 +0100 Subject: [Python-es] problema con "regular expression" In-Reply-To: References: Message-ID: Muchas gracias a todos por los comentarios y las sugerencias. Un saludo, Jose From javierperez en perasalvino.es Thu Aug 20 07:59:22 2020 From: javierperez en perasalvino.es (Javier Perez) Date: Thu, 20 Aug 2020 13:59:22 +0200 Subject: [Python-es] Locate es_ES Message-ID: Hola a todos, buenos días, En la aplicación que estoy desarrollando extraigo una serie de datos de una web que es americana. Me gustaría pasar esos datos a formato español. Vamos, cambiar el punto decimal por una coma. No es por el origen de los datos porque he creado una variable con decimales y me la muestra mal. ¿qué estoy haciendo mal? El programa es este: import pprint from gazpacho import get, Soup import locale locale.setlocale(locale.LC_ALL, 'es_ES') valor = 0 url = "https://markets.ft.com/data/funds/tearsheet/risk?s=LU0275692696:EUR" html = get(url) gazpacho_soup = Soup(html) valor = gazpacho_soup.find( 'span', attrs={'class': 'mod-ui-data-list__value'})[0].text valor = valor.replace(",", "") valor = float(valor) valor = valor * 1000 anual = gazpacho_soup.find( 'span', attrs={'class': 'mod-ui-data-list__value'})[2].text anual = anual.replace("%", "") anual = float(anual) moneda = 15268.57 alpha = gazpacho_soup.find('td')[1].text alpha = float(alpha) beta = gazpacho_soup.find('td')[4].text beta = float(beta) print(valor) print(anual) print(alpha) print(moneda) print(beta) configuracion = locale.localeconv() # Imprimir definiciones con pprint para una lectura agradable: imprimir = pprint.PrettyPrinter() imprimir.pprint(configuracion) Y lo que genera es: 25910.0 4.18 -18.87 15268.57 0.94 {'currency_symbol': 'Eu', 'decimal_point': ',', 'frac_digits': 2, 'grouping': [127], 'int_curr_symbol': 'EUR ', 'int_frac_digits': 2, 'mon_decimal_point': ',', 'mon_grouping': [3, 3, 0], 'mon_thousands_sep': '.', 'n_cs_precedes': 0, 'n_sep_by_space': 1, 'n_sign_posn': 1, 'negative_sign': '-', 'p_cs_precedes': 0, 'p_sep_by_space': 1, 'p_sign_posn': 1, 'positive_sign': '', 'thousands_sep': ''} Saludos, -- Javier Pérez http://es.linkedin.com/in/javierperez1 http://www.perasalvino.es/ From perysoy en gmail.com Thu Aug 20 11:09:16 2020 From: perysoy en gmail.com (PeRy) Date: Thu, 20 Aug 2020 17:09:16 +0200 Subject: [Python-es] Locate es_ES In-Reply-To: References: Message-ID: Hola compañero, yo lo hago de la siguiente manera: In [1]: import locale In [2]: a = 25400.57 In [3]: a Out[3]: 25400.57 In [4]: locale.setlocale(locale.LC_ALL, 'es') Out[4]: 'es' In [5]: print(f'{a:n}') 25.400,6 'n' Number. This is the same as 'd', except that it uses the current locale setting to insert the appropriate number separator characters. https://docs.python.org/3/library/string.html#format-specification-mini-language espero que te sirva un saludo El jue., 20 ago. 2020 a las 14:00, Javier Perez () escribió: > Hola a todos, buenos días, > > > En la aplicación que estoy desarrollando extraigo una serie de datos de > una web que es americana. Me gustaría pasar esos datos a formato español. > Vamos, cambiar el punto decimal por una coma. > > No es por el origen de los datos porque he creado una variable con > decimales y me la muestra mal. > > ¿qué estoy haciendo mal? > > > > El programa es este: > import pprint > from gazpacho import get, Soup > import locale > locale.setlocale(locale.LC_ALL, 'es_ES') > > valor = 0 > url = "https://markets.ft.com/data/funds/tearsheet/risk?s=LU0275692696:EUR > " > html = get(url) > gazpacho_soup = Soup(html) > valor = gazpacho_soup.find( > 'span', attrs={'class': 'mod-ui-data-list__value'})[0].text > valor = valor.replace(",", "") > valor = float(valor) > valor = valor * 1000 > anual = gazpacho_soup.find( > 'span', attrs={'class': 'mod-ui-data-list__value'})[2].text > anual = anual.replace("%", "") > anual = float(anual) > moneda = 15268.57 > alpha = gazpacho_soup.find('td')[1].text > alpha = float(alpha) > beta = gazpacho_soup.find('td')[4].text > beta = float(beta) > > > print(valor) > print(anual) > print(alpha) > print(moneda) > print(beta) > > configuracion = locale.localeconv() > > # Imprimir definiciones con pprint para una lectura agradable: > imprimir = pprint.PrettyPrinter() > imprimir.pprint(configuracion) > > > > Y lo que genera es: > 25910.0 > 4.18 > -18.87 > 15268.57 > 0.94 > {'currency_symbol': 'Eu', > 'decimal_point': ',', > 'frac_digits': 2, > 'grouping': [127], > 'int_curr_symbol': 'EUR ', > 'int_frac_digits': 2, > 'mon_decimal_point': ',', > 'mon_grouping': [3, 3, 0], > 'mon_thousands_sep': '.', > 'n_cs_precedes': 0, > 'n_sep_by_space': 1, > 'n_sign_posn': 1, > 'negative_sign': '-', > 'p_cs_precedes': 0, > 'p_sep_by_space': 1, > 'p_sign_posn': 1, > 'positive_sign': '', > 'thousands_sep': ''} > > Saludos, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From javierperez en perasalvino.es Thu Aug 20 16:08:43 2020 From: javierperez en perasalvino.es (Javier Perez) Date: Thu, 20 Aug 2020 22:08:43 +0200 Subject: [Python-es] Locate es_ES In-Reply-To: References: Message-ID: <9568A685-70D5-46B2-A459-8A15585219DF@perasalvino.es> Muchas gracias Pery, peor no me funciona igual: No me separa los miles. No se. Uso Visual Studio Code peor por eso no creo que sea porque usando otro ide el resultado es el mismo. He simplificado el código: import locale locale.setlocale(locale.LC_ALL, 'es_ES') valor = 25400.57 print(f"{valor:n}") print(f"{valor=:}") Y me sale: 25400,6 valor=25400.57 Saludos, -- Javier Pérez http://es.linkedin.com/in/javierperez1 http://www.perasalvino.es/ > El 20 ago 2020, a las 17:09, PeRy escribió: > > Hola compañero, yo lo hago de la siguiente manera: > > In [1]: import locale > > In [2]: a = 25400.57 > > In [3]: a > Out[3]: 25400.57 > > In [4]: locale.setlocale(locale.LC_ALL, 'es') > Out[4]: 'es' > > In [5]: print(f'{a:n}') > 25.400,6 > > 'n' > Number. This is the same as 'd', except that it uses the current locale setting to insert the appropriate number separator characters. > https://docs.python.org/3/library/string.html#format-specification-mini-language > > espero que te sirva > > un saludo > > El jue., 20 ago. 2020 a las 14:00, Javier Perez () escribió: > Hola a todos, buenos días, > > > En la aplicación que estoy desarrollando extraigo una serie de datos de una web que es americana. Me gustaría pasar esos datos a formato español. Vamos, cambiar el punto decimal por una coma. > > No es por el origen de los datos porque he creado una variable con decimales y me la muestra mal. > > ¿qué estoy haciendo mal? > > > > El programa es este: > import pprint > from gazpacho import get, Soup > import locale > locale.setlocale(locale.LC_ALL, 'es_ES') > > valor = 0 > url = "https://markets.ft.com/data/funds/tearsheet/risk?s=LU0275692696:EUR" > html = get(url) > gazpacho_soup = Soup(html) > valor = gazpacho_soup.find( > 'span', attrs={'class': 'mod-ui-data-list__value'})[0].text > valor = valor.replace(",", "") > valor = float(valor) > valor = valor * 1000 > anual = gazpacho_soup.find( > 'span', attrs={'class': 'mod-ui-data-list__value'})[2].text > anual = anual.replace("%", "") > anual = float(anual) > moneda = 15268.57 > alpha = gazpacho_soup.find('td')[1].text > alpha = float(alpha) > beta = gazpacho_soup.find('td')[4].text > beta = float(beta) > > > print(valor) > print(anual) > print(alpha) > print(moneda) > print(beta) > > configuracion = locale.localeconv() > > # Imprimir definiciones con pprint para una lectura agradable: > imprimir = pprint.PrettyPrinter() > imprimir.pprint(configuracion) > > > > Y lo que genera es: > 25910.0 > 4.18 > -18.87 > 15268.57 > 0.94 > {'currency_symbol': 'Eu', > 'decimal_point': ',', > 'frac_digits': 2, > 'grouping': [127], > 'int_curr_symbol': 'EUR ', > 'int_frac_digits': 2, > 'mon_decimal_point': ',', > 'mon_grouping': [3, 3, 0], > 'mon_thousands_sep': '.', > 'n_cs_precedes': 0, > 'n_sep_by_space': 1, > 'n_sign_posn': 1, > 'negative_sign': '-', > 'p_cs_precedes': 0, > 'p_sep_by_space': 1, > 'p_sign_posn': 1, > 'positive_sign': '', > 'thousands_sep': ''} > > Saludos, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es From msanchez en uninet.edu Thu Aug 20 18:08:52 2020 From: msanchez en uninet.edu (msanchez en uninet.edu) Date: Thu, 20 Aug 2020 23:08:52 +0100 Subject: [Python-es] Locate es_ES In-Reply-To: <9568A685-70D5-46B2-A459-8A15585219DF@perasalvino.es> References: <9568A685-70D5-46B2-A459-8A15585219DF@perasalvino.es> Message-ID: <20200820230852.278cc0ea@mariaonline.org> Hola. A mi esto: import locale locale.setlocale(locale.LC_ALL, '') siempre me ha funcionado import locale locale.setlocale(locale.LC_ALL, '') This sets the locale for all categories to the user?s default setting (typically specified in the LANG environment variable). If the locale is not changed thereafter, using multithreading should not cause problems. Saludos El Thu, 20 Aug 2020 22:08:43 +0200 Javier Perez dijo: > Muchas gracias Pery, peor no me funciona igual: No me separa los miles. > > No se. Uso Visual Studio Code peor por eso no creo que sea porque usando otro ide el resultado es el mismo. > > He simplificado el código: > import locale > locale.setlocale(locale.LC_ALL, 'es_ES') > > valor = 25400.57 > > print(f"{valor:n}") > print(f"{valor=:}") > > > > Y me sale: > 25400,6 > valor=25400.57 > > Saludos, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > > El 20 ago 2020, a las 17:09, PeRy escribió: > > > > Hola compañero, yo lo hago de la siguiente manera: > > > > In [1]: import locale > > > > In [2]: a = 25400.57 > > > > In [3]: a > > Out[3]: 25400.57 > > > > In [4]: locale.setlocale(locale.LC_ALL, 'es') > > Out[4]: 'es' > > > > In [5]: print(f'{a:n}') > > 25.400,6 > > > > 'n' > > Number. This is the same as 'd', except that it uses the current locale setting to insert the appropriate number separator characters. > > https://docs.python.org/3/library/string.html#format-specification-mini-language > > > > espero que te sirva > > > > un saludo > > > > El jue., 20 ago. 2020 a las 14:00, Javier Perez () escribió: > > Hola a todos, buenos días, > > > > > > En la aplicación que estoy desarrollando extraigo una serie de datos de una web que es americana. Me gustaría pasar esos datos a formato español. Vamos, cambiar el punto decimal por una coma. > > > > No es por el origen de los datos porque he creado una variable con decimales y me la muestra mal. > > > > ¿qué estoy haciendo mal? > > > > > > > > El programa es este: > > import pprint > > from gazpacho import get, Soup > > import locale > > locale.setlocale(locale.LC_ALL, 'es_ES') > > > > valor = 0 > > url = "https://markets.ft.com/data/funds/tearsheet/risk?s=LU0275692696:EUR" > > html = get(url) > > gazpacho_soup = Soup(html) > > valor = gazpacho_soup.find( > > 'span', attrs={'class': 'mod-ui-data-list__value'})[0].text > > valor = valor.replace(",", "") > > valor = float(valor) > > valor = valor * 1000 > > anual = gazpacho_soup.find( > > 'span', attrs={'class': 'mod-ui-data-list__value'})[2].text > > anual = anual.replace("%", "") > > anual = float(anual) > > moneda = 15268.57 > > alpha = gazpacho_soup.find('td')[1].text > > alpha = float(alpha) > > beta = gazpacho_soup.find('td')[4].text > > beta = float(beta) > > > > > > print(valor) > > print(anual) > > print(alpha) > > print(moneda) > > print(beta) > > > > configuracion = locale.localeconv() > > > > # Imprimir definiciones con pprint para una lectura agradable: > > imprimir = pprint.PrettyPrinter() > > imprimir.pprint(configuracion) > > > > > > > > Y lo que genera es: > > 25910.0 > > 4.18 > > -18.87 > > 15268.57 > > 0.94 > > {'currency_symbol': 'Eu', > > 'decimal_point': ',', > > 'frac_digits': 2, > > 'grouping': [127], > > 'int_curr_symbol': 'EUR ', > > 'int_frac_digits': 2, > > 'mon_decimal_point': ',', > > 'mon_grouping': [3, 3, 0], > > 'mon_thousands_sep': '.', > > 'n_cs_precedes': 0, > > 'n_sep_by_space': 1, > > 'n_sign_posn': 1, > > 'negative_sign': '-', > > 'p_cs_precedes': 0, > > 'p_sep_by_space': 1, > > 'p_sign_posn': 1, > > 'positive_sign': '', > > 'thousands_sep': ''} > > > > Saludos, > > > > -- > > Javier Pérez > > http://es.linkedin.com/in/javierperez1 > > http://www.perasalvino.es/ > > > > > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es From perysoy en gmail.com Fri Aug 21 09:06:42 2020 From: perysoy en gmail.com (PeRy) Date: Fri, 21 Aug 2020 15:06:42 +0200 Subject: [Python-es] Locate es_ES In-Reply-To: <9568A685-70D5-46B2-A459-8A15585219DF@perasalvino.es> References: <9568A685-70D5-46B2-A459-8A15585219DF@perasalvino.es> Message-ID: prueba con el locale: locale.format_string('%d', valor, 1) Salu2!! El jue., 20 ago. 2020 a las 22:09, Javier Perez () escribió: > Muchas gracias Pery, peor no me funciona igual: No me separa los miles. > > No se. Uso Visual Studio Code peor por eso no creo que sea porque usando > otro ide el resultado es el mismo. > > He simplificado el código: > import locale > locale.setlocale(locale.LC_ALL, 'es_ES') > > valor = 25400.57 > > print(f"{valor:n}") > print(f"{valor=:}") > > > > Y me sale: > 25400,6 > valor=25400.57 > > Saludos, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > > El 20 ago 2020, a las 17:09, PeRy escribió: > > > > Hola compañero, yo lo hago de la siguiente manera: > > > > In [1]: import locale > > > > In [2]: a = 25400.57 > > > > In [3]: a > > Out[3]: 25400.57 > > > > In [4]: locale.setlocale(locale.LC_ALL, 'es') > > Out[4]: 'es' > > > > In [5]: print(f'{a:n}') > > 25.400,6 > > > > 'n' > > Number. This is the same as 'd', except that it uses the current locale > setting to insert the appropriate number separator characters. > > > https://docs.python.org/3/library/string.html#format-specification-mini-language > > > > espero que te sirva > > > > un saludo > > > > El jue., 20 ago. 2020 a las 14:00, Javier Perez (< > javierperez en perasalvino.es>) escribió: > > Hola a todos, buenos días, > > > > > > En la aplicación que estoy desarrollando extraigo una serie de datos de > una web que es americana. Me gustaría pasar esos datos a formato español. > Vamos, cambiar el punto decimal por una coma. > > > > No es por el origen de los datos porque he creado una variable con > decimales y me la muestra mal. > > > > ¿qué estoy haciendo mal? > > > > > > > > El programa es este: > > import pprint > > from gazpacho import get, Soup > > import locale > > locale.setlocale(locale.LC_ALL, 'es_ES') > > > > valor = 0 > > url = " > https://markets.ft.com/data/funds/tearsheet/risk?s=LU0275692696:EUR" > > html = get(url) > > gazpacho_soup = Soup(html) > > valor = gazpacho_soup.find( > > 'span', attrs={'class': 'mod-ui-data-list__value'})[0].text > > valor = valor.replace(",", "") > > valor = float(valor) > > valor = valor * 1000 > > anual = gazpacho_soup.find( > > 'span', attrs={'class': 'mod-ui-data-list__value'})[2].text > > anual = anual.replace("%", "") > > anual = float(anual) > > moneda = 15268.57 > > alpha = gazpacho_soup.find('td')[1].text > > alpha = float(alpha) > > beta = gazpacho_soup.find('td')[4].text > > beta = float(beta) > > > > > > print(valor) > > print(anual) > > print(alpha) > > print(moneda) > > print(beta) > > > > configuracion = locale.localeconv() > > > > # Imprimir definiciones con pprint para una lectura agradable: > > imprimir = pprint.PrettyPrinter() > > imprimir.pprint(configuracion) > > > > > > > > Y lo que genera es: > > 25910.0 > > 4.18 > > -18.87 > > 15268.57 > > 0.94 > > {'currency_symbol': 'Eu', > > 'decimal_point': ',', > > 'frac_digits': 2, > > 'grouping': [127], > > 'int_curr_symbol': 'EUR ', > > 'int_frac_digits': 2, > > 'mon_decimal_point': ',', > > 'mon_grouping': [3, 3, 0], > > 'mon_thousands_sep': '.', > > 'n_cs_precedes': 0, > > 'n_sep_by_space': 1, > > 'n_sign_posn': 1, > > 'negative_sign': '-', > > 'p_cs_precedes': 0, > > 'p_sep_by_space': 1, > > 'p_sign_posn': 1, > > 'positive_sign': '', > > 'thousands_sep': ''} > > > > Saludos, > > > > -- > > Javier Pérez > > http://es.linkedin.com/in/javierperez1 > > http://www.perasalvino.es/ > > > > > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Fri Aug 21 09:46:32 2020 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Fri, 21 Aug 2020 14:46:32 +0100 Subject: [Python-es] ROOT CA certficate Message-ID: Hola, Primero, contexto [1]. Estoy intentando usar este cliente https://pypi.org/project/rt/ para interactuar con el sistema de tickets RT de nuestro curro. Por lo que veo en el código, y los mensajes de error, usa la librería requests. Si no hago nada especial, SSL falla, como era de esperar [2]. Puedo evitarlo con el truco sucio [3]. Pero no me gusta. Además, con cada acción me escupe mensajes de WARNING. Me he bajado el certificado de la Autoridad Certificadora que hay instalado en el servidor RT. Pero ahora no tengo claro cómo hacer que la librería requests lo encuentre. He googleado un poco, y he probado con variables de entorno REQUESTS_CA_BUNDLE y SSL_CERT_DIR, pero no ha habido suerte. Veo en google demasiadas alternativas, no tengo claro si alguna de ellas es obsoleta, o no estoy entendiendo lo que leo... Si alguien me puede dar alguna pista, estaría eternamente agradecido. Muchas gracias por adelantado. Saludos, Jose =============================== [1] $ uname -a Darwin vpn-3-078.rl.ac.uk 18.7.0 Darwin Kernel Version 18.7.0: Sun Dec 1 18:59:03 PST 2019; root:xnu-4903.278.19~1/RELEASE_X86_64 x86_64 $ python -V Python 2.7.16 [2] >>> import rt >>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass') >>> t.login() Traceback (most recent call last): File "", line 1, in File "/Library/Python/2.7/site-packages/rt.py", line 374, in login without_login=True)) == 200 File "/Library/Python/2.7/site-packages/rt.py", line 299, in __request raise ConnectionError("Connection error", e) rt.ConnectionError: Connection error (Caused by SSLError(MaxRetryError("HTTPSConnectionPool(host='my.rt.server', port=443): Max retries exceeded with url: /REST/1.0/ (Caused by SSLError(SSLError(0, u'unknown error (_ssl.c:3063)'),))",),)) [3] >>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass', verify_cert=False) From javierperez en perasalvino.es Fri Aug 21 15:44:17 2020 From: javierperez en perasalvino.es (Javier Perez) Date: Fri, 21 Aug 2020 21:44:17 +0200 Subject: [Python-es] Locate es_ES In-Reply-To: References: <9568A685-70D5-46B2-A459-8A15585219DF@perasalvino.es> Message-ID: Muchas gracias, Saludos, -- Javier Pérez http://es.linkedin.com/in/javierperez1 http://www.perasalvino.es/ > El 21 ago 2020, a las 15:06, PeRy escribió: > > prueba con el locale: > > locale.format_string('%d', valor, 1) > > Salu2!! > > El jue., 20 ago. 2020 a las 22:09, Javier Perez (>) escribió: > Muchas gracias Pery, peor no me funciona igual: No me separa los miles. > > No se. Uso Visual Studio Code peor por eso no creo que sea porque usando otro ide el resultado es el mismo. > > He simplificado el código: > import locale > locale.setlocale(locale.LC_ALL, 'es_ES') > > valor = 25400.57 > > print(f"{valor:n}") > print(f"{valor=:}") > > > > Y me sale: > 25400,6 > valor=25400.57 > > Saludos, > > -- > Javier Pérez > http://es.linkedin.com/in/javierperez1 > http://www.perasalvino.es/ > > > > > > El 20 ago 2020, a las 17:09, PeRy > escribió: > > > > Hola compañero, yo lo hago de la siguiente manera: > > > > In [1]: import locale > > > > In [2]: a = 25400.57 > > > > In [3]: a > > Out[3]: 25400.57 > > > > In [4]: locale.setlocale(locale.LC_ALL, 'es') > > Out[4]: 'es' > > > > In [5]: print(f'{a:n}') > > 25.400,6 > > > > 'n' > > Number. This is the same as 'd', except that it uses the current locale setting to insert the appropriate number separator characters. > > https://docs.python.org/3/library/string.html#format-specification-mini-language > > > > espero que te sirva > > > > un saludo > > > > El jue., 20 ago. 2020 a las 14:00, Javier Perez (>) escribió: > > Hola a todos, buenos días, > > > > > > En la aplicación que estoy desarrollando extraigo una serie de datos de una web que es americana. Me gustaría pasar esos datos a formato español. Vamos, cambiar el punto decimal por una coma. > > > > No es por el origen de los datos porque he creado una variable con decimales y me la muestra mal. > > > > ¿qué estoy haciendo mal? > > > > > > > > El programa es este: > > import pprint > > from gazpacho import get, Soup > > import locale > > locale.setlocale(locale.LC_ALL, 'es_ES') > > > > valor = 0 > > url = "https://markets.ft.com/data/funds/tearsheet/risk?s=LU0275692696:EUR " > > html = get(url) > > gazpacho_soup = Soup(html) > > valor = gazpacho_soup.find( > > 'span', attrs={'class': 'mod-ui-data-list__value'})[0].text > > valor = valor.replace(",", "") > > valor = float(valor) > > valor = valor * 1000 > > anual = gazpacho_soup.find( > > 'span', attrs={'class': 'mod-ui-data-list__value'})[2].text > > anual = anual.replace("%", "") > > anual = float(anual) > > moneda = 15268.57 > > alpha = gazpacho_soup.find('td')[1].text > > alpha = float(alpha) > > beta = gazpacho_soup.find('td')[4].text > > beta = float(beta) > > > > > > print(valor) > > print(anual) > > print(alpha) > > print(moneda) > > print(beta) > > > > configuracion = locale.localeconv() > > > > # Imprimir definiciones con pprint para una lectura agradable: > > imprimir = pprint.PrettyPrinter() > > imprimir.pprint(configuracion) > > > > > > > > Y lo que genera es: > > 25910.0 > > 4.18 > > -18.87 > > 15268.57 > > 0.94 > > {'currency_symbol': 'Eu', > > 'decimal_point': ',', > > 'frac_digits': 2, > > 'grouping': [127], > > 'int_curr_symbol': 'EUR ', > > 'int_frac_digits': 2, > > 'mon_decimal_point': ',', > > 'mon_grouping': [3, 3, 0], > > 'mon_thousands_sep': '.', > > 'n_cs_precedes': 0, > > 'n_sep_by_space': 1, > > 'n_sign_posn': 1, > > 'negative_sign': '-', > > 'p_cs_precedes': 0, > > 'p_sep_by_space': 1, > > 'p_sign_posn': 1, > > 'positive_sign': '', > > 'thousands_sep': ''} > > > > Saludos, > > > > -- > > Javier Pérez > > http://es.linkedin.com/in/javierperez1 > > http://www.perasalvino.es/ > > > > > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > _______________________________________________ > > Python-es mailing list > > Python-es en python.org > > https://mail.python.org/mailman/listinfo/python-es > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From nippur69 en gmail.com Fri Aug 21 11:28:42 2020 From: nippur69 en gmail.com (Nippur Lagash) Date: Fri, 21 Aug 2020 12:28:42 -0300 Subject: [Python-es] ROOT CA certficate In-Reply-To: References: Message-ID: Hola, ese certificato que bajaste lo tiene que poner en /usr/share/ca-certificates/ Luego editar el /etc/ca-certificates.conf y agregar al final: / Luego ejecutas: update-ca-certificates --fresh Espero te sirva, saludos! El vie., 21 ago. 2020 a las 10:48, Jose Caballero () escribió: > Hola, > > Primero, contexto [1]. > > Estoy intentando usar este cliente https://pypi.org/project/rt/ para > interactuar con el sistema de tickets RT de nuestro curro. Por lo que > veo en el código, y los mensajes de error, usa la librería requests. > > Si no hago nada especial, SSL falla, como era de esperar [2]. > > Puedo evitarlo con el truco sucio [3]. > Pero no me gusta. Además, con cada acción me escupe mensajes de WARNING. > > Me he bajado el certificado de la Autoridad Certificadora que hay > instalado en el servidor RT. > Pero ahora no tengo claro cómo hacer que la librería requests lo encuentre. > He googleado un poco, y he probado con variables de entorno > REQUESTS_CA_BUNDLE y SSL_CERT_DIR, pero no ha habido suerte. > Veo en google demasiadas alternativas, no tengo claro si alguna de > ellas es obsoleta, o no estoy entendiendo lo que leo... > > Si alguien me puede dar alguna pista, estaría eternamente agradecido. > > Muchas gracias por adelantado. > Saludos, > Jose > > =============================== > [1] > > $ uname -a > Darwin vpn-3-078.rl.ac.uk 18.7.0 Darwin Kernel Version 18.7.0: Sun Dec > 1 18:59:03 PST 2019; root:xnu-4903.278.19~1/RELEASE_X86_64 x86_64 > > $ python -V > Python 2.7.16 > > [2] > >>> import rt > >>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass') > >>> t.login() > Traceback (most recent call last): > File "", line 1, in > File "/Library/Python/2.7/site-packages/rt.py", line 374, in login > without_login=True)) == 200 > File "/Library/Python/2.7/site-packages/rt.py", line 299, in __request > raise ConnectionError("Connection error", e) > rt.ConnectionError: Connection error (Caused by > SSLError(MaxRetryError("HTTPSConnectionPool(host='my.rt.server', > port=443): Max retries exceeded with url: /REST/1.0/ (Caused by > SSLError(SSLError(0, u'unknown error (_ssl.c:3063)'),))",),)) > > > [3] > >>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass', > verify_cert=False) > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > -- Nippur Mar del Plata Buenos Aires Argentina https://mozit.com.ar ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jcaballero.hep en gmail.com Sat Aug 22 02:54:27 2020 From: jcaballero.hep en gmail.com (Jose Caballero) Date: Sat, 22 Aug 2020 07:54:27 +0100 Subject: [Python-es] ROOT CA certficate In-Reply-To: References: Message-ID: <994D0C94-AF70-4E40-9836-CB4F217099AC@gmail.com> AFK, ¿esos directorios existen en Mac? > On Aug 21, 2020, at 4:28 PM, Nippur Lagash wrote: > > Hola, ese certificato que bajaste lo tiene que poner en /usr/share/ca-certificates/ > Luego editar el /etc/ca-certificates.conf y agregar al final: > / > Luego ejecutas: > update-ca-certificates --fresh > > Espero te sirva, saludos! > > >> El vie., 21 ago. 2020 a las 10:48, Jose Caballero () escribió: >> Hola, >> >> Primero, contexto [1]. >> >> Estoy intentando usar este cliente https://pypi.org/project/rt/ para >> interactuar con el sistema de tickets RT de nuestro curro. Por lo que >> veo en el código, y los mensajes de error, usa la librería requests. >> >> Si no hago nada especial, SSL falla, como era de esperar [2]. >> >> Puedo evitarlo con el truco sucio [3]. >> Pero no me gusta. Además, con cada acción me escupe mensajes de WARNING. >> >> Me he bajado el certificado de la Autoridad Certificadora que hay >> instalado en el servidor RT. >> Pero ahora no tengo claro cómo hacer que la librería requests lo encuentre. >> He googleado un poco, y he probado con variables de entorno >> REQUESTS_CA_BUNDLE y SSL_CERT_DIR, pero no ha habido suerte. >> Veo en google demasiadas alternativas, no tengo claro si alguna de >> ellas es obsoleta, o no estoy entendiendo lo que leo... >> >> Si alguien me puede dar alguna pista, estaría eternamente agradecido. >> >> Muchas gracias por adelantado. >> Saludos, >> Jose >> >> =============================== >> [1] >> >> $ uname -a >> Darwin vpn-3-078.rl.ac.uk 18.7.0 Darwin Kernel Version 18.7.0: Sun Dec >> 1 18:59:03 PST 2019; root:xnu-4903.278.19~1/RELEASE_X86_64 x86_64 >> >> $ python -V >> Python 2.7.16 >> >> [2] >> >>> import rt >> >>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass') >> >>> t.login() >> Traceback (most recent call last): >> File "", line 1, in >> File "/Library/Python/2.7/site-packages/rt.py", line 374, in login >> without_login=True)) == 200 >> File "/Library/Python/2.7/site-packages/rt.py", line 299, in __request >> raise ConnectionError("Connection error", e) >> rt.ConnectionError: Connection error (Caused by >> SSLError(MaxRetryError("HTTPSConnectionPool(host='my.rt.server', >> port=443): Max retries exceeded with url: /REST/1.0/ (Caused by >> SSLError(SSLError(0, u'unknown error (_ssl.c:3063)'),))",),)) >> >> >> [3] >> >>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass', verify_cert=False) >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es > > > -- > Nippur > Mar del Plata > Buenos Aires > Argentina > https://mozit.com.ar > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alejandroacostaalamo en gmail.com Tue Aug 25 08:24:38 2020 From: alejandroacostaalamo en gmail.com (Alejandro Acosta) Date: Tue, 25 Aug 2020 08:24:38 -0400 Subject: [Python-es] Obtener los registros DNS RRSIG Message-ID: Hola lista, muy buenos días,   Espero puedan ayudarme.   Quiero obtener los registro RRSIG de algunos dominios pero no lo logro a la perfección. ¿Cual es el problema?, la librería dnspython no me muestra todos los rrsig.   Ejemplo, utilicemos el dominio ietf.org: Vía dig: ;; ANSWER SECTION: ietf.org.        1787    IN    RRSIG    SOA 5 2 1800 20210817174325 20200817164614 40452 ietf.org. QoubcalPlW2mj1rkqtbniLW86IXOAA9oSM5C1Eqdfr8py2FfL+84Byi0 xryrXk3d7tbgUIRcDFoRVZ3lxQvOM9gevZZckgoCw4/Tm23Lo/4g7yF4 t7M7CdbYuJ10y+flnN4mR+NVK93FF/z1+an/IaiB2F4QX9JrHln57KTv WHRN7J0DoxNizicbfChfCwfJPAAVki6FTgGy1FCrHdf8YdPqL6uh/hLt K4Cm/ZG/S6U+wIBY3q3byhl99Q2IeuRXtDBv/6uZhsP0x9Jxnhr6454x 6CyJMA8sDLNaT+iJX6f6qOAFTjqDDJ6FSwpgnHfn5Hc5CQtoNA0lsxDb h+dr+g== ietf.org.        1787    IN    RRSIG    NS 5 2 1800 20210817174510 20200817164614 40452 ietf.org. OVO1QWS/WmldpK0Ir7L/ALWQn/8ONP3PSp66/Uv0WlS5rugBoxSbOlug 8c3CkRJTAzfDXGnUTg80k0o4n9G+Bfmg00dv3tIVc+fpmQpie9BoRFVo FkZ85+a0GNZYfdgKuRZDgtnhtJNSN8MHv1PRDZqG+TilvIfOLuu7q1EN 9aJ5J/rpu8LwrJ+qYNgvxxu2UPd4JcQ4SFfyVawZSzfF5gIxhPozVGv2 3mERB3sgEB8H1IJDlcdXjU1lWT5FVDufGX149UPGUNui30ra+FHYtjIS mkYNpjAJiYv6MY8h+jL7XIE61hhXlzwmr/Ygx3XPk7B4PkUehfWtaM7Y 6AWcCw== ietf.org.        1787    IN    RRSIG    A 5 2 1800 20210817174543 20200817164614 40452 ietf.org. MlrNAlhBg4euHhdWL76IFZnTiPdiJxPG3eIo7sa6FfqO6v7jRKjLeyoF s5WO+G1D+B03UfLTpZ9vsil2IXp0+QqW2d305qY7erLbIytPEMaqT237 yOw+i4aONpQwOU91sebxXGObwDwMcfBauDMoC5X4yXzQ3JalN3l4xnWN 62h3FsxQQzRHRvFnCiJmmidlmL0o/8kish1dZN1kC1ZpXYiydPNEVCZ4 R+0wLBY5EU6IJQkWWXZdYpJeUFHovpGqdsB+5gFBZoTi96b5wagGBgzT D+Ja3plUSRHuyba/7p1gdg+dK85zNYKJul2UYCbE5FkeLuUalJLT2hi2 eRGpfA== ietf.org.        1787    IN    RRSIG    MX 5 2 1800 20210817174547 20200817164614 40452 ietf.org. KMUpIGlAmw5uSQbhTWDLLpUqE34k0Aa5UsHkigHnm8zKNbusXh2mf27L dQTCIToYRsTq8JyjTqBIpaCY15IQEDWxq8hVqEgGXd6/Ilz/p+wHZoVd J2h8VETOZvwcGoEvImItedT33Z5lQpCxgTdHGd9clt98kFTqlXNF3Bu7 5JSddshmK8W2aFazUyfsHmxJwo/TwOZ521YoQJEbS99C/+O0qobZEdZd 5Uyh5rWtTh3hHtF99g24Bp4Ym1tmSVYVO2bzLjEfauLO+PMn6bYn4Ilq 8pVmRoSqfawXsy95sXRSi7VYP12H9/C1OhbwWvKquhSmm3vin0h/Vz8b 5JmUQw== ietf.org.        1787    IN    RRSIG    TXT 5 2 1800 20210817174548 20200817164614 40452 ietf.org. TCoovJ+KIGyn6WAQlnLSUI2Y3o/SEI49R31yNiljE2aOiNlpycjFkP5V Z1QV9j7kinSopVgIVNLuVLGKzJPwQwxsCOBsI1PrjslkRHEHfbQELCws tLratFwEvJVBFGZTZgzdeAIi5h7myr+kFipm+h7WsBkW9u00fYjJB18a Hsiguw2HUfdaPtKl3TClDetHhZnOe5Wtqc1AR6RMnwE2+P3HS5nFNYO6 Cxa3VNt14JieltUP/HG7W3LXAapvNL5e7R0gmIsIE/FZ6xBD7IA06dwK hC/6/9bNAMFZPGF4+luND2KBYd6zNnEPUbUDPtBv6/Dr+k6IahqkcFRz 8R++Wg== ietf.org.        1787    IN    RRSIG    AAAA 5 2 1800 20210817174604 20200817164614 40452 ietf.org. e7HhqVt4SBkQRab12v7Msk+X8BU71rinUURIkloIpLrSNIgCWNOhQe8Z lfpwNymkPiC0sc5vYdHVCq4qtS4CQRJBT64J8PaK7s/R6Kh/5GBhPykD kx+4dBIrHSkPAZPRlst2L1H+2C3SfuXwYqcVo+hg4cY1sIywvo7Q6fe3 fDpGfyFZHZdxy4uIE8tM7L4lCbS8rQ+xgWRFj/ksQdN+WNT0r9Gs7N3Z /yGcJt11Wlvvlr9/090qgqk9231EbiwiOrzCGSzS2hWlgpdfIJ9q7dPJ Hagmg8WC5SF05Hu7o99UE7CfV8JK+KFVj9rrPGDxTw9fa1noIeKLtJNS m4p+nA== ietf.org.        1787    IN    RRSIG    NSEC 5 2 1800 20210817174437 20200817164614 40452 ietf.org. gO6O5uUxiwXGnK5itHzCkVoxnQdX4sWQMUI0HCg86E1+5UG15vJ0AEh7 JooHN+lqwbZ7U6aZQXW4k4bpYWhogAkxq8eaWhseN+I94P2Wc4tmlAk2 5x6da0m8qA70V2Hy25C+4ard9f1A2ViK/+Nh2pmr/OdK+EOIVZuof1FQ tsUwHRuBUIh+inQwTtlFQH/2OBlbBpuv0MeWrO+oLmc5i+WoluCg9re9 sAXDkseu5xUmxwqculiUAL/IqGAdhQGBL+P/7xZ7V697lLNEMNYyF6/c Z5I8D/Llr7Gd6j2oCbYs/Sj7sysMjOBhaiWdqosZrmFiChgrNxsrmnoW 0enu5g== ietf.org.        1787    IN    RRSIG    DNSKEY 5 2 1800 20210817174257 20200817164614 45586 ietf.org. KrWS1J30ZWBn2jBRwdStoqMO+Z8mBZkEei2qC0mTKstlT0JZhxb33omE IxHlIbuZZt+ZCbkwAAv4uXpJcJYdV6HezC61fn8spwctYE11AP2XPLxJ Ydna2LCq5qE++wDksDkYyaqY+HqIxVfVeeNJQcAXhd4dT+TeqGkSSEMq iorXAVPkxtW+U/B0hEapWc71MwYPRGxkReiuW99vICyLpKe1EBgTaW3H 6VJpEKK3vaY8M5C49R4768TtP6aWBnS/2g2bvphO/jFPlw0r7yBGrlZ4 lF95Ow021ff9eTZ2LDIsYfx4T3OwrMs2E4eMjo9IGqapwi+whZrDdrTF c+5NrQ== ietf.org.        1787    IN    RRSIG    DNSKEY 5 2 1800 20210817174454 20200817164614 40452 ietf.org. NUsyWRv4URiXZf920o5Hrd+gFXjoNig0MHXhFFy52mcOJSzM0RpCzs3k 4dqf7oYhdvF7ABVObar0iCJQSs51eU1IGpTDUIdlMVgPW8UeM8G5TW5A 0RTWEebel3eCPel7S6EXSoiyzfaYh4UVOqg0TumYsaB/kDNJg3Gd9aaC tvEf+pb+xoABiu8eh0K2U4vURgNQJHzVXvJOfVaNj6HZk8l8PcDxVYhK 9p34ZwAJLxq/AN4FmX9IH0RdqDTN33UOCOKJ1VgH98nNYPCqjfENtF80 nT+qwG8Od1kSm9prBzTZT/2E/5QgT+MhbVuwHCDe2gy2j2Er1q/Vr60x tKH0SA== ietf.org.        1787    IN    RRSIG    SPF 5 2 1800 20210817174534 20200817164614 40452 ietf.org. erTXZQfOy0kNKh+ZaYJQJu6fs/dnaUlfaILRu5B+fTWhtQ/jKvRKLb6/ 2WWXq0knDF9pIx2EIn2/tNwIpPntragmgv2yeM0vAF05/ZwoWab52VHM vK0ekBPP0HZMUCEhqAWrhVG9qnOzcpIZ0KOrnheI3jcz9fdWLujtYE1t vN591i4j+UNbp0Inob65GBUIXzPEhYZxXTireNcbUeAxf/Y2hGg4EMHw 41I+g+IfTAr1Ykat1AJ0MqcP/MAd+RKJW83absfLlGNp4E3HihulNvbi TKcp/fsjUeoTQ6rIXQn+5D86Kv3kYVg93JuaY9RgPZqP9LaNmaa6obQq ejHl Vía dnspython: ietf.org. 1720 IN RRSIG DNSKEY 5 2 1800 20210817174257 20200817164614 45586 ietf.org. KrWS1J30ZWBn2jBRwdStoqMO+Z8mBZkE ei2qC0mTKstlT0JZhxb33omEIxHlIbuZ Zt+ZCbkwAAv4uXpJcJYdV6HezC61fn8s pwctYE11AP2XPLxJYdna2LCq5qE++wDk sDkYyaqY+HqIxVfVeeNJQcAXhd4dT+Te qGkSSEMqiorXAVPkxtW+U/B0hEapWc71 MwYPRGxkReiuW99vICyLpKe1EBgTaW3H 6VJpEKK3vaY8M5C49R4768TtP6aWBnS/ 2g2bvphO/jFPlw0r7yBGrlZ4lF95Ow02 1ff9eTZ2LDIsYfx4T3OwrMs2E4eMjo9I Gqapwi+whZrDdrTFc+5NrQ== ietf.org. 1720 IN RRSIG DNSKEY 5 2 1800 20210817174454 20200817164614 40452 ietf.org. NUsyWRv4URiXZf920o5Hrd+gFXjoNig0 MHXhFFy52mcOJSzM0RpCzs3k4dqf7oYh dvF7ABVObar0iCJQSs51eU1IGpTDUIdl MVgPW8UeM8G5TW5A0RTWEebel3eCPel7 S6EXSoiyzfaYh4UVOqg0TumYsaB/kDNJ g3Gd9aaCtvEf+pb+xoABiu8eh0K2U4vU RgNQJHzVXvJOfVaNj6HZk8l8PcDxVYhK 9p34ZwAJLxq/AN4FmX9IH0RdqDTN33UO COKJ1VgH98nNYPCqjfENtF80nT+qwG8O d1kSm9prBzTZT/2E/5QgT+MhbVuwHCDe 2gy2j2Er1q/Vr60xtKH0SA==     Miren la diferencia, vía dnspython solo son dos registros. Si soy más simplista e intento: import dns.resolver answers = dns.resolver.query('ietf.org', ?RRSIG?) for rdata in answers:     print(rdata)   No trae nada (que tendría lógica porque tecnicamente RRSIG no son registros DNS).   El código que estoy usando (que no sirve) es:   import dns.flags   import dns.resolver   import dns.rdatatype   import dns.rdataclass   name_server = '8.8.8.8'   response='' #let's reset this   domain_name = FQDNorDOMAIN   rdtype = dns.rdatatype.DNSKEY   resolver = dns.resolver.Resolver()   resolver.use_edns(0,dns.flags.DO,4096)   resolver.nameservers = ([name_server])   try:     response = resolver.query(domain_name, rdtype, dns.rdataclass.IN, True).response     answer=str(response).splitlines( )     for line in answer:       if 'RRSIG' in line: print (line)   except Exception:     print ('NX domain')    ¿Que podría hacer para traer los registros RRSIG de los nombres de dominio?    Muchas gracias, Alejandro, P.D. Ejecutar dig y parsearlo no es válido :-(.., sorry ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lasizoillo en gmail.com Tue Aug 25 10:18:51 2020 From: lasizoillo en gmail.com (lasizoillo) Date: Tue, 25 Aug 2020 16:18:51 +0200 Subject: [Python-es] Obtener los registros DNS RRSIG In-Reply-To: References: Message-ID: Buenas, O bien no estás haciendo la misma petición que hace dig (podrías comprobarlo con un sniffer como wireshark viendo la diferencia de las requests de dig y dnspython) o bien dnspython está filtrando las entradas RSIG que no son de tipo DNSKEY a pesar de que se devuelvan en la petición (que con pdb u otro depurador ejecutando paso a paso la query podrías verlo). Si es algo que te falta a la hora de hacer la query, cuando sepas lo que es va a ser fácil de encontrar. Si es algo que está filtrando dnspython porque si igual te da más guerra, pero siempre quedará la opción de usar scapy o struct para montar la petición, aunque struct es demasiado jarto. Siento no poder ayudarte más. Pero pegarte con dnspython es la tipica cosa que me toca hacer una vez cada porrón de años. Un saludo, Javi El mar., 25 ago. 2020 a las 14:25, Alejandro Acosta (< alejandroacostaalamo en gmail.com>) escribió: > Hola lista, muy buenos días, > > Espero puedan ayudarme. > > Quiero obtener los registro RRSIG de algunos dominios pero no lo logro a > la perfección. ¿Cual es el problema?, la librería dnspython no me muestra > todos los rrsig. > > Ejemplo, utilicemos el dominio ietf.org: > > Vía dig: > > ;; ANSWER SECTION: > ietf.org. 1787 IN RRSIG SOA 5 2 1800 20210817174325 > 20200817164614 40452 ietf.org. > QoubcalPlW2mj1rkqtbniLW86IXOAA9oSM5C1Eqdfr8py2FfL+84Byi0 > xryrXk3d7tbgUIRcDFoRVZ3lxQvOM9gevZZckgoCw4/Tm23Lo/4g7yF4 > t7M7CdbYuJ10y+flnN4mR+NVK93FF/z1+an/IaiB2F4QX9JrHln57KTv > WHRN7J0DoxNizicbfChfCwfJPAAVki6FTgGy1FCrHdf8YdPqL6uh/hLt > K4Cm/ZG/S6U+wIBY3q3byhl99Q2IeuRXtDBv/6uZhsP0x9Jxnhr6454x > 6CyJMA8sDLNaT+iJX6f6qOAFTjqDDJ6FSwpgnHfn5Hc5CQtoNA0lsxDb h+dr+g== > ietf.org. 1787 IN RRSIG NS 5 2 1800 20210817174510 > 20200817164614 40452 ietf.org. > OVO1QWS/WmldpK0Ir7L/ALWQn/8ONP3PSp66/Uv0WlS5rugBoxSbOlug > 8c3CkRJTAzfDXGnUTg80k0o4n9G+Bfmg00dv3tIVc+fpmQpie9BoRFVo > FkZ85+a0GNZYfdgKuRZDgtnhtJNSN8MHv1PRDZqG+TilvIfOLuu7q1EN > 9aJ5J/rpu8LwrJ+qYNgvxxu2UPd4JcQ4SFfyVawZSzfF5gIxhPozVGv2 > 3mERB3sgEB8H1IJDlcdXjU1lWT5FVDufGX149UPGUNui30ra+FHYtjIS > mkYNpjAJiYv6MY8h+jL7XIE61hhXlzwmr/Ygx3XPk7B4PkUehfWtaM7Y 6AWcCw== > ietf.org. 1787 IN RRSIG A 5 2 1800 20210817174543 > 20200817164614 40452 ietf.org. > MlrNAlhBg4euHhdWL76IFZnTiPdiJxPG3eIo7sa6FfqO6v7jRKjLeyoF > s5WO+G1D+B03UfLTpZ9vsil2IXp0+QqW2d305qY7erLbIytPEMaqT237 > yOw+i4aONpQwOU91sebxXGObwDwMcfBauDMoC5X4yXzQ3JalN3l4xnWN > 62h3FsxQQzRHRvFnCiJmmidlmL0o/8kish1dZN1kC1ZpXYiydPNEVCZ4 > R+0wLBY5EU6IJQkWWXZdYpJeUFHovpGqdsB+5gFBZoTi96b5wagGBgzT > D+Ja3plUSRHuyba/7p1gdg+dK85zNYKJul2UYCbE5FkeLuUalJLT2hi2 eRGpfA== > ietf.org. 1787 IN RRSIG MX 5 2 1800 20210817174547 > 20200817164614 40452 ietf.org. > KMUpIGlAmw5uSQbhTWDLLpUqE34k0Aa5UsHkigHnm8zKNbusXh2mf27L > dQTCIToYRsTq8JyjTqBIpaCY15IQEDWxq8hVqEgGXd6/Ilz/p+wHZoVd > J2h8VETOZvwcGoEvImItedT33Z5lQpCxgTdHGd9clt98kFTqlXNF3Bu7 > 5JSddshmK8W2aFazUyfsHmxJwo/TwOZ521YoQJEbS99C/+O0qobZEdZd > 5Uyh5rWtTh3hHtF99g24Bp4Ym1tmSVYVO2bzLjEfauLO+PMn6bYn4Ilq > 8pVmRoSqfawXsy95sXRSi7VYP12H9/C1OhbwWvKquhSmm3vin0h/Vz8b 5JmUQw== > ietf.org. 1787 IN RRSIG TXT 5 2 1800 20210817174548 > 20200817164614 40452 ietf.org. > TCoovJ+KIGyn6WAQlnLSUI2Y3o/SEI49R31yNiljE2aOiNlpycjFkP5V > Z1QV9j7kinSopVgIVNLuVLGKzJPwQwxsCOBsI1PrjslkRHEHfbQELCws > tLratFwEvJVBFGZTZgzdeAIi5h7myr+kFipm+h7WsBkW9u00fYjJB18a > Hsiguw2HUfdaPtKl3TClDetHhZnOe5Wtqc1AR6RMnwE2+P3HS5nFNYO6 > Cxa3VNt14JieltUP/HG7W3LXAapvNL5e7R0gmIsIE/FZ6xBD7IA06dwK > hC/6/9bNAMFZPGF4+luND2KBYd6zNnEPUbUDPtBv6/Dr+k6IahqkcFRz 8R++Wg== > ietf.org. 1787 IN RRSIG AAAA 5 2 1800 20210817174604 > 20200817164614 40452 ietf.org. > e7HhqVt4SBkQRab12v7Msk+X8BU71rinUURIkloIpLrSNIgCWNOhQe8Z > lfpwNymkPiC0sc5vYdHVCq4qtS4CQRJBT64J8PaK7s/R6Kh/5GBhPykD > kx+4dBIrHSkPAZPRlst2L1H+2C3SfuXwYqcVo+hg4cY1sIywvo7Q6fe3 > fDpGfyFZHZdxy4uIE8tM7L4lCbS8rQ+xgWRFj/ksQdN+WNT0r9Gs7N3Z > /yGcJt11Wlvvlr9/090qgqk9231EbiwiOrzCGSzS2hWlgpdfIJ9q7dPJ > Hagmg8WC5SF05Hu7o99UE7CfV8JK+KFVj9rrPGDxTw9fa1noIeKLtJNS m4p+nA== > ietf.org. 1787 IN RRSIG NSEC 5 2 1800 20210817174437 > 20200817164614 40452 ietf.org. > gO6O5uUxiwXGnK5itHzCkVoxnQdX4sWQMUI0HCg86E1+5UG15vJ0AEh7 > JooHN+lqwbZ7U6aZQXW4k4bpYWhogAkxq8eaWhseN+I94P2Wc4tmlAk2 > 5x6da0m8qA70V2Hy25C+4ard9f1A2ViK/+Nh2pmr/OdK+EOIVZuof1FQ > tsUwHRuBUIh+inQwTtlFQH/2OBlbBpuv0MeWrO+oLmc5i+WoluCg9re9 > sAXDkseu5xUmxwqculiUAL/IqGAdhQGBL+P/7xZ7V697lLNEMNYyF6/c > Z5I8D/Llr7Gd6j2oCbYs/Sj7sysMjOBhaiWdqosZrmFiChgrNxsrmnoW 0enu5g== > ietf.org. 1787 IN RRSIG DNSKEY 5 2 1800 20210817174257 > 20200817164614 45586 ietf.org. > KrWS1J30ZWBn2jBRwdStoqMO+Z8mBZkEei2qC0mTKstlT0JZhxb33omE > IxHlIbuZZt+ZCbkwAAv4uXpJcJYdV6HezC61fn8spwctYE11AP2XPLxJ > Ydna2LCq5qE++wDksDkYyaqY+HqIxVfVeeNJQcAXhd4dT+TeqGkSSEMq > iorXAVPkxtW+U/B0hEapWc71MwYPRGxkReiuW99vICyLpKe1EBgTaW3H > 6VJpEKK3vaY8M5C49R4768TtP6aWBnS/2g2bvphO/jFPlw0r7yBGrlZ4 > lF95Ow021ff9eTZ2LDIsYfx4T3OwrMs2E4eMjo9IGqapwi+whZrDdrTF c+5NrQ== > ietf.org. 1787 IN RRSIG DNSKEY 5 2 1800 20210817174454 > 20200817164614 40452 ietf.org. > NUsyWRv4URiXZf920o5Hrd+gFXjoNig0MHXhFFy52mcOJSzM0RpCzs3k > 4dqf7oYhdvF7ABVObar0iCJQSs51eU1IGpTDUIdlMVgPW8UeM8G5TW5A > 0RTWEebel3eCPel7S6EXSoiyzfaYh4UVOqg0TumYsaB/kDNJg3Gd9aaC > tvEf+pb+xoABiu8eh0K2U4vURgNQJHzVXvJOfVaNj6HZk8l8PcDxVYhK > 9p34ZwAJLxq/AN4FmX9IH0RdqDTN33UOCOKJ1VgH98nNYPCqjfENtF80 > nT+qwG8Od1kSm9prBzTZT/2E/5QgT+MhbVuwHCDe2gy2j2Er1q/Vr60x tKH0SA== > ietf.org. 1787 IN RRSIG SPF 5 2 1800 20210817174534 > 20200817164614 40452 ietf.org. > erTXZQfOy0kNKh+ZaYJQJu6fs/dnaUlfaILRu5B+fTWhtQ/jKvRKLb6/ > 2WWXq0knDF9pIx2EIn2/tNwIpPntragmgv2yeM0vAF05/ZwoWab52VHM > vK0ekBPP0HZMUCEhqAWrhVG9qnOzcpIZ0KOrnheI3jcz9fdWLujtYE1t > vN591i4j+UNbp0Inob65GBUIXzPEhYZxXTireNcbUeAxf/Y2hGg4EMHw > 41I+g+IfTAr1Ykat1AJ0MqcP/MAd+RKJW83absfLlGNp4E3HihulNvbi > TKcp/fsjUeoTQ6rIXQn+5D86Kv3kYVg93JuaY9RgPZqP9LaNmaa6obQq ejHl > > > > Vía dnspython: > > ietf.org. 1720 IN RRSIG DNSKEY 5 2 1800 20210817174257 20200817164614 45586 ietf.org. KrWS1J30ZWBn2jBRwdStoqMO+Z8mBZkE ei2qC0mTKstlT0JZhxb33omEIxHlIbuZ Zt+ZCbkwAAv4uXpJcJYdV6HezC61fn8s pwctYE11AP2XPLxJYdna2LCq5qE++wDk sDkYyaqY+HqIxVfVeeNJQcAXhd4dT+Te qGkSSEMqiorXAVPkxtW+U/B0hEapWc71 MwYPRGxkReiuW99vICyLpKe1EBgTaW3H 6VJpEKK3vaY8M5C49R4768TtP6aWBnS/ 2g2bvphO/jFPlw0r7yBGrlZ4lF95Ow02 1ff9eTZ2LDIsYfx4T3OwrMs2E4eMjo9I Gqapwi+whZrDdrTFc+5NrQ==ietf.org. 1720 IN RRSIG DNSKEY 5 2 1800 20210817174454 20200817164614 40452 ietf.org. NUsyWRv4URiXZf920o5Hrd+gFXjoNig0 MHXhFFy52mcOJSzM0RpCzs3k4dqf7oYh dvF7ABVObar0iCJQSs51eU1IGpTDUIdl MVgPW8UeM8G5TW5A0RTWEebel3eCPel7 S6EXSoiyzfaYh4UVOqg0TumYsaB/kDNJ g3Gd9aaCtvEf+pb+xoABiu8eh0K2U4vU RgNQJHzVXvJOfVaNj6HZk8l8PcDxVYhK 9p34ZwAJLxq/AN4FmX9IH0RdqDTN33UO COKJ1VgH98nNYPCqjfENtF80nT+qwG8O d1kSm9prBzTZT/2E/5QgT+MhbVuwHCDe 2gy2j2Er1q/Vr60xtKH0SA== > > Miren la diferencia, vía dnspython solo son dos registros. > > > Si soy más simplista e intento: > > import dns.resolver > answers = dns.resolver.query('ietf.org', ?RRSIG?) > for rdata in answers: > print(rdata) > > > No trae nada (que tendría lógica porque tecnicamente RRSIG no son > registros DNS). > > > El código que estoy usando (que no sirve) es: > > > import dns.flags > import dns.resolver > import dns.rdatatype > import dns.rdataclass > name_server = '8.8.8.8' > response='' #let's reset this > domain_name = FQDNorDOMAIN > rdtype = dns.rdatatype.DNSKEY > resolver = dns.resolver.Resolver() > resolver.use_edns(0,dns.flags.DO,4096) > resolver.nameservers = ([name_server]) > > try: > response = resolver.query(domain_name, rdtype, dns.rdataclass.IN, > True).response > answer=str(response).splitlines( ) > for line in answer: > if 'RRSIG' in line: print (line) > > except Exception: > print ('NX domain') > > > ¿Que podría hacer para traer los registros RRSIG de los nombres de > dominio? > > Muchas gracias, > > > Alejandro, > > P.D. Ejecutar dig y parsearlo no es válido :-(.., sorry > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From agtugo en gmail.com Wed Aug 26 21:56:16 2020 From: agtugo en gmail.com (AGTUGO) Date: Wed, 26 Aug 2020 18:56:16 -0700 Subject: [Python-es] activar logging en unittest Message-ID: Hola lista de python, Estoy usando unittest para la parte funcional, mi programa se queda atorado en algun lado pero no se donde, los archivos que corro ya tienen logging, hay forma de que ese logging sea "activado", es un programa grande y quiero aprovechar el loggin que tengo en el programa en la parte de test. -- Arturo Muñoz Tolosa ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lasizoillo en gmail.com Thu Aug 27 03:31:44 2020 From: lasizoillo en gmail.com (lasizoillo) Date: Thu, 27 Aug 2020 09:31:44 +0200 Subject: [Python-es] activar logging en unittest In-Reply-To: References: Message-ID: Buenas, Va a ser mucho más rápido si te instalas py-spy y ves directamente dónde se ha quedado atorado tu código a través del volcado de pila que te proporciona la opción dump https://github.com/benfred/py-spy#dump Un saludo, Javi El jue., 27 ago. 2020 a las 3:57, AGTUGO () escribió: > Hola lista de python, > > Estoy usando unittest para la parte funcional, mi programa se queda > atorado en algun lado pero no se donde, los archivos que corro ya tienen > logging, hay forma de que ese logging sea "activado", es un programa grande > y quiero aprovechar el loggin que tengo en el programa en la parte de test. > > -- > Arturo Muñoz Tolosa > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From agtugo en gmail.com Thu Aug 27 17:58:47 2020 From: agtugo en gmail.com (AGTUGO) Date: Thu, 27 Aug 2020 14:58:47 -0700 Subject: [Python-es] activar logging en unittest In-Reply-To: References: Message-ID: Se puede sin dependencias extras? On Thu, Aug 27, 2020, 12:32 AM lasizoillo wrote: > Buenas, > > Va a ser mucho más rápido si te instalas py-spy y ves directamente dónde > se ha quedado atorado tu código a través del volcado de pila que te > proporciona la opción dump https://github.com/benfred/py-spy#dump > > Un saludo, > > Javi > > El jue., 27 ago. 2020 a las 3:57, AGTUGO () escribió: > >> Hola lista de python, >> >> Estoy usando unittest para la parte funcional, mi programa se queda >> atorado en algun lado pero no se donde, los archivos que corro ya tienen >> logging, hay forma de que ese logging sea "activado", es un programa grande >> y quiero aprovechar el loggin que tengo en el programa en la parte de test. >> >> -- >> Arturo Muñoz Tolosa >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From lasizoillo en gmail.com Fri Aug 28 07:30:18 2020 From: lasizoillo en gmail.com (lasizoillo) Date: Fri, 28 Aug 2020 13:30:18 +0200 Subject: [Python-es] activar logging en unittest In-Reply-To: References: Message-ID: El jue., 27 ago. 2020 a las 23:59, AGTUGO () escribió: > Se puede sin dependencias extras? > py-spy es una utilidad extra, no una dependencia extra, tu proyecto no se va a enterar si usas o no py-spy. También se puede hacer sin instalar ningún tipo de utilidad extra, pero teniendo una solución que te va a dar directamente la línea en la que está bloqueado tu código el resto de las opciones son descartables (a no ser que exista un motivo de peso para descartar la forma buena de hacerlo). ¿Existe un motivo para no usar la herramienta correcta? Un saludo, Javi > On Thu, Aug 27, 2020, 12:32 AM lasizoillo wrote: > >> Buenas, >> >> Va a ser mucho más rápido si te instalas py-spy y ves directamente dónde >> se ha quedado atorado tu código a través del volcado de pila que te >> proporciona la opción dump https://github.com/benfred/py-spy#dump >> >> Un saludo, >> >> Javi >> >> El jue., 27 ago. 2020 a las 3:57, AGTUGO () escribió: >> >>> Hola lista de python, >>> >>> Estoy usando unittest para la parte funcional, mi programa se queda >>> atorado en algun lado pero no se donde, los archivos que corro ya tienen >>> logging, hay forma de que ese logging sea "activado", es un programa grande >>> y quiero aprovechar el loggin que tengo en el programa en la parte de test. >>> >>> -- >>> Arturo Muñoz Tolosa >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From agtugo en gmail.com Fri Aug 28 20:53:27 2020 From: agtugo en gmail.com (AGTUGO) Date: Fri, 28 Aug 2020 17:53:27 -0700 Subject: [Python-es] activar logging en unittest In-Reply-To: References: Message-ID: Sí, el ambiente de desarollo está en Python 2.6 no se pueda instalar nada pero tiene Python mock, aquel que existía antes de ser incorporado en la librería estándar. A veces me toca trabajar en ambientes arqueológicos. On Fri, Aug 28, 2020, 4:30 AM lasizoillo wrote: > > > El jue., 27 ago. 2020 a las 23:59, AGTUGO () escribió: > >> Se puede sin dependencias extras? >> > > py-spy es una utilidad extra, no una dependencia extra, tu proyecto no se > va a enterar si usas o no py-spy. > > También se puede hacer sin instalar ningún tipo de utilidad extra, pero > teniendo una solución que te va a dar directamente la línea en la que está > bloqueado tu código el resto de las opciones son descartables (a no ser que > exista un motivo de peso para descartar la forma buena de hacerlo). ¿Existe > un motivo para no usar la herramienta correcta? > > Un saludo, > > Javi > > >> On Thu, Aug 27, 2020, 12:32 AM lasizoillo wrote: >> >>> Buenas, >>> >>> Va a ser mucho más rápido si te instalas py-spy y ves directamente dónde >>> se ha quedado atorado tu código a través del volcado de pila que te >>> proporciona la opción dump https://github.com/benfred/py-spy#dump >>> >>> Un saludo, >>> >>> Javi >>> >>> El jue., 27 ago. 2020 a las 3:57, AGTUGO () escribió: >>> >>>> Hola lista de python, >>>> >>>> Estoy usando unittest para la parte funcional, mi programa se queda >>>> atorado en algun lado pero no se donde, los archivos que corro ya tienen >>>> logging, hay forma de que ese logging sea "activado", es un programa grande >>>> y quiero aprovechar el loggin que tengo en el programa en la parte de test. >>>> >>>> -- >>>> Arturo Muñoz Tolosa >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es en python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es en python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> _______________________________________________ >> Python-es mailing list >> Python-es en python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From alejandroacostaalamo en gmail.com Mon Aug 31 12:36:30 2020 From: alejandroacostaalamo en gmail.com (Alejandro Acosta) Date: Mon, 31 Aug 2020 12:36:30 -0400 Subject: [Python-es] Obtener los registros DNS RRSIG In-Reply-To: References: Message-ID: <32b03160-5838-1009-0fde-53d54f5e7ec6@gmail.com> Hola Javi,   Mil gracias por tu respuesta, hice las pruebas con wireshark, dig y mi pequeño programa.   Te comento que la solicitud y las respuestas son idénticas, tanto en dig como en dnspython.., por lo menos es una mediana buena noticia.   Lo único que deseo es ver los rrsig por registro..., nada que lo logro. Gracias, Alejandro, On 8/25/20 10:18 AM, lasizoillo wrote: > Buenas, > > O bien no estás haciendo la misma petición que hace dig (podrías > comprobarlo con un sniffer como wireshark viendo la diferencia de las > requests de dig y dnspython) o bien dnspython está filtrando las > entradas RSIG que no son de tipo DNSKEY a pesar de que se devuelvan en > la petición (que con pdb u otro depurador ejecutando paso a paso la > query podrías verlo). Si es algo que te falta a la hora de hacer la > query, cuando sepas lo que es va a ser fácil de encontrar. Si es algo > que está filtrando dnspython porque si igual te da más guerra, pero > siempre quedará la opción de usar scapy o struct para montar la > petición, aunque struct es demasiado jarto. > > Siento no poder ayudarte más. Pero pegarte con dnspython es la tipica > cosa que me toca hacer una vez cada porrón de años. > > Un saludo, > > Javi > > El mar., 25 ago. 2020 a las 14:25, Alejandro Acosta > ( >) escribió: > > Hola lista, muy buenos días, > >   Espero puedan ayudarme. > >   Quiero obtener los registro RRSIG de algunos dominios pero no lo > logro a la perfección. ¿Cual es el problema?, la librería > dnspython no me muestra todos los rrsig. > >   Ejemplo, utilicemos el dominio ietf.org : > > Vía dig: > > ;; ANSWER SECTION: > ietf.org .        1787    IN  RRSIG    SOA 5 2 > 1800 20210817174325 20200817164614 40452 ietf.org > . > QoubcalPlW2mj1rkqtbniLW86IXOAA9oSM5C1Eqdfr8py2FfL+84Byi0 > xryrXk3d7tbgUIRcDFoRVZ3lxQvOM9gevZZckgoCw4/Tm23Lo/4g7yF4 > t7M7CdbYuJ10y+flnN4mR+NVK93FF/z1+an/IaiB2F4QX9JrHln57KTv > WHRN7J0DoxNizicbfChfCwfJPAAVki6FTgGy1FCrHdf8YdPqL6uh/hLt > K4Cm/ZG/S6U+wIBY3q3byhl99Q2IeuRXtDBv/6uZhsP0x9Jxnhr6454x > 6CyJMA8sDLNaT+iJX6f6qOAFTjqDDJ6FSwpgnHfn5Hc5CQtoNA0lsxDb h+dr+g== > ietf.org .        1787    IN  RRSIG    NS 5 2 > 1800 20210817174510 20200817164614 40452 ietf.org > . > OVO1QWS/WmldpK0Ir7L/ALWQn/8ONP3PSp66/Uv0WlS5rugBoxSbOlug > 8c3CkRJTAzfDXGnUTg80k0o4n9G+Bfmg00dv3tIVc+fpmQpie9BoRFVo > FkZ85+a0GNZYfdgKuRZDgtnhtJNSN8MHv1PRDZqG+TilvIfOLuu7q1EN > 9aJ5J/rpu8LwrJ+qYNgvxxu2UPd4JcQ4SFfyVawZSzfF5gIxhPozVGv2 > 3mERB3sgEB8H1IJDlcdXjU1lWT5FVDufGX149UPGUNui30ra+FHYtjIS > mkYNpjAJiYv6MY8h+jL7XIE61hhXlzwmr/Ygx3XPk7B4PkUehfWtaM7Y 6AWcCw== > ietf.org .        1787    IN  RRSIG    A 5 2 1800 > 20210817174543 20200817164614 40452 ietf.org . > MlrNAlhBg4euHhdWL76IFZnTiPdiJxPG3eIo7sa6FfqO6v7jRKjLeyoF > s5WO+G1D+B03UfLTpZ9vsil2IXp0+QqW2d305qY7erLbIytPEMaqT237 > yOw+i4aONpQwOU91sebxXGObwDwMcfBauDMoC5X4yXzQ3JalN3l4xnWN > 62h3FsxQQzRHRvFnCiJmmidlmL0o/8kish1dZN1kC1ZpXYiydPNEVCZ4 > R+0wLBY5EU6IJQkWWXZdYpJeUFHovpGqdsB+5gFBZoTi96b5wagGBgzT > D+Ja3plUSRHuyba/7p1gdg+dK85zNYKJul2UYCbE5FkeLuUalJLT2hi2 eRGpfA== > ietf.org .        1787    IN  RRSIG    MX 5 2 > 1800 20210817174547 20200817164614 40452 ietf.org > . > KMUpIGlAmw5uSQbhTWDLLpUqE34k0Aa5UsHkigHnm8zKNbusXh2mf27L > dQTCIToYRsTq8JyjTqBIpaCY15IQEDWxq8hVqEgGXd6/Ilz/p+wHZoVd > J2h8VETOZvwcGoEvImItedT33Z5lQpCxgTdHGd9clt98kFTqlXNF3Bu7 > 5JSddshmK8W2aFazUyfsHmxJwo/TwOZ521YoQJEbS99C/+O0qobZEdZd > 5Uyh5rWtTh3hHtF99g24Bp4Ym1tmSVYVO2bzLjEfauLO+PMn6bYn4Ilq > 8pVmRoSqfawXsy95sXRSi7VYP12H9/C1OhbwWvKquhSmm3vin0h/Vz8b 5JmUQw== > ietf.org .        1787    IN  RRSIG    TXT 5 2 > 1800 20210817174548 20200817164614 40452 ietf.org > . > TCoovJ+KIGyn6WAQlnLSUI2Y3o/SEI49R31yNiljE2aOiNlpycjFkP5V > Z1QV9j7kinSopVgIVNLuVLGKzJPwQwxsCOBsI1PrjslkRHEHfbQELCws > tLratFwEvJVBFGZTZgzdeAIi5h7myr+kFipm+h7WsBkW9u00fYjJB18a > Hsiguw2HUfdaPtKl3TClDetHhZnOe5Wtqc1AR6RMnwE2+P3HS5nFNYO6 > Cxa3VNt14JieltUP/HG7W3LXAapvNL5e7R0gmIsIE/FZ6xBD7IA06dwK > hC/6/9bNAMFZPGF4+luND2KBYd6zNnEPUbUDPtBv6/Dr+k6IahqkcFRz 8R++Wg== > ietf.org .        1787    IN  RRSIG    AAAA 5 2 > 1800 20210817174604 20200817164614 40452 ietf.org > . > e7HhqVt4SBkQRab12v7Msk+X8BU71rinUURIkloIpLrSNIgCWNOhQe8Z > lfpwNymkPiC0sc5vYdHVCq4qtS4CQRJBT64J8PaK7s/R6Kh/5GBhPykD > kx+4dBIrHSkPAZPRlst2L1H+2C3SfuXwYqcVo+hg4cY1sIywvo7Q6fe3 > fDpGfyFZHZdxy4uIE8tM7L4lCbS8rQ+xgWRFj/ksQdN+WNT0r9Gs7N3Z > /yGcJt11Wlvvlr9/090qgqk9231EbiwiOrzCGSzS2hWlgpdfIJ9q7dPJ > Hagmg8WC5SF05Hu7o99UE7CfV8JK+KFVj9rrPGDxTw9fa1noIeKLtJNS m4p+nA== > ietf.org .        1787    IN  RRSIG    NSEC 5 2 > 1800 20210817174437 20200817164614 40452 ietf.org > . > gO6O5uUxiwXGnK5itHzCkVoxnQdX4sWQMUI0HCg86E1+5UG15vJ0AEh7 > JooHN+lqwbZ7U6aZQXW4k4bpYWhogAkxq8eaWhseN+I94P2Wc4tmlAk2 > 5x6da0m8qA70V2Hy25C+4ard9f1A2ViK/+Nh2pmr/OdK+EOIVZuof1FQ > tsUwHRuBUIh+inQwTtlFQH/2OBlbBpuv0MeWrO+oLmc5i+WoluCg9re9 > sAXDkseu5xUmxwqculiUAL/IqGAdhQGBL+P/7xZ7V697lLNEMNYyF6/c > Z5I8D/Llr7Gd6j2oCbYs/Sj7sysMjOBhaiWdqosZrmFiChgrNxsrmnoW 0enu5g== > ietf.org .        1787    IN  RRSIG    DNSKEY 5 2 > 1800 20210817174257 20200817164614 45586 ietf.org > . > KrWS1J30ZWBn2jBRwdStoqMO+Z8mBZkEei2qC0mTKstlT0JZhxb33omE > IxHlIbuZZt+ZCbkwAAv4uXpJcJYdV6HezC61fn8spwctYE11AP2XPLxJ > Ydna2LCq5qE++wDksDkYyaqY+HqIxVfVeeNJQcAXhd4dT+TeqGkSSEMq > iorXAVPkxtW+U/B0hEapWc71MwYPRGxkReiuW99vICyLpKe1EBgTaW3H > 6VJpEKK3vaY8M5C49R4768TtP6aWBnS/2g2bvphO/jFPlw0r7yBGrlZ4 > lF95Ow021ff9eTZ2LDIsYfx4T3OwrMs2E4eMjo9IGqapwi+whZrDdrTF c+5NrQ== > ietf.org .        1787    IN  RRSIG    DNSKEY 5 2 > 1800 20210817174454 20200817164614 40452 ietf.org > . > NUsyWRv4URiXZf920o5Hrd+gFXjoNig0MHXhFFy52mcOJSzM0RpCzs3k > 4dqf7oYhdvF7ABVObar0iCJQSs51eU1IGpTDUIdlMVgPW8UeM8G5TW5A > 0RTWEebel3eCPel7S6EXSoiyzfaYh4UVOqg0TumYsaB/kDNJg3Gd9aaC > tvEf+pb+xoABiu8eh0K2U4vURgNQJHzVXvJOfVaNj6HZk8l8PcDxVYhK > 9p34ZwAJLxq/AN4FmX9IH0RdqDTN33UOCOKJ1VgH98nNYPCqjfENtF80 > nT+qwG8Od1kSm9prBzTZT/2E/5QgT+MhbVuwHCDe2gy2j2Er1q/Vr60x tKH0SA== > ietf.org .        1787    IN  RRSIG    SPF 5 2 > 1800 20210817174534 20200817164614 40452 ietf.org > . > erTXZQfOy0kNKh+ZaYJQJu6fs/dnaUlfaILRu5B+fTWhtQ/jKvRKLb6/ > 2WWXq0knDF9pIx2EIn2/tNwIpPntragmgv2yeM0vAF05/ZwoWab52VHM > vK0ekBPP0HZMUCEhqAWrhVG9qnOzcpIZ0KOrnheI3jcz9fdWLujtYE1t > vN591i4j+UNbp0Inob65GBUIXzPEhYZxXTireNcbUeAxf/Y2hGg4EMHw > 41I+g+IfTAr1Ykat1AJ0MqcP/MAd+RKJW83absfLlGNp4E3HihulNvbi > TKcp/fsjUeoTQ6rIXQn+5D86Kv3kYVg93JuaY9RgPZqP9LaNmaa6obQq ejHl > > > > Vía dnspython: > > ietf.org . 1720 IN RRSIG DNSKEY 5 2 1800 20210817174257 20200817164614 45586ietf.org . KrWS1J30ZWBn2jBRwdStoqMO+Z8mBZkE ei2qC0mTKstlT0JZhxb33omEIxHlIbuZ Zt+ZCbkwAAv4uXpJcJYdV6HezC61fn8s pwctYE11AP2XPLxJYdna2LCq5qE++wDk sDkYyaqY+HqIxVfVeeNJQcAXhd4dT+Te qGkSSEMqiorXAVPkxtW+U/B0hEapWc71 MwYPRGxkReiuW99vICyLpKe1EBgTaW3H 6VJpEKK3vaY8M5C49R4768TtP6aWBnS/ 2g2bvphO/jFPlw0r7yBGrlZ4lF95Ow02 1ff9eTZ2LDIsYfx4T3OwrMs2E4eMjo9I Gqapwi+whZrDdrTFc+5NrQ== > ietf.org . 1720 IN RRSIG DNSKEY 5 2 1800 20210817174454 20200817164614 40452ietf.org . NUsyWRv4URiXZf920o5Hrd+gFXjoNig0 MHXhFFy52mcOJSzM0RpCzs3k4dqf7oYh dvF7ABVObar0iCJQSs51eU1IGpTDUIdl MVgPW8UeM8G5TW5A0RTWEebel3eCPel7 S6EXSoiyzfaYh4UVOqg0TumYsaB/kDNJ g3Gd9aaCtvEf+pb+xoABiu8eh0K2U4vU RgNQJHzVXvJOfVaNj6HZk8l8PcDxVYhK 9p34ZwAJLxq/AN4FmX9IH0RdqDTN33UO COKJ1VgH98nNYPCqjfENtF80nT+qwG8O d1kSm9prBzTZT/2E/5QgT+MhbVuwHCDe 2gy2j2Er1q/Vr60xtKH0SA== > >     Miren la diferencia, vía dnspython solo son dos registros. > > > Si soy más simplista e intento: > > import dns.resolver > answers = dns.resolver.query('ietf.org ', ?RRSIG?) > for rdata in answers: >     print(rdata) > > >   No trae nada (que tendría lógica porque tecnicamente RRSIG no > son registros DNS). > > >   El código que estoy usando (que no sirve) es: > > >   import dns.flags >   import dns.resolver >   import dns.rdatatype >   import dns.rdataclass >   name_server = '8.8.8.8' >   response='' #let's reset this >   domain_name = FQDNorDOMAIN >   rdtype = dns.rdatatype.DNSKEY >   resolver = dns.resolver.Resolver() >   resolver.use_edns(0,dns.flags.DO ,4096) >   resolver.nameservers = ([name_server]) > >   try: >     response = resolver.query(domain_name, rdtype, > dns.rdataclass.IN , True).response >     answer=str(response).splitlines( ) >     for line in answer: >       if 'RRSIG' in line: print (line) > >   except Exception: >     print ('NX domain') > > >    ¿Que podría hacer para traer los registros RRSIG de los nombres > de dominio? > >    Muchas gracias, > > > Alejandro, > > P.D. Ejecutar dig y parsearlo no es válido :-(.., sorry > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es > > > _______________________________________________ > Python-es mailing list > Python-es en python.org > https://mail.python.org/mailman/listinfo/python-es ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: