[pyar] xml.etree.ElementTree
Federico Brest
federiconbrest en gmail.com
Lun Dic 16 15:01:27 -03 2019
No estan compartidas, fueron caracteres alfanuméricos colocados al azar ;)
El lun., 16 dic. 2019 a las 14:18, Augusto (<adtononi en gmail.com>) escribió:
> Buenas,
>
> Cuidado con comprartir las credenciales de la API, esa parte no hace
> falta.
>
> Después, tu función getInfoFromApi no devuelve nada. Fijate que tenes
> comentada la línea del content
>
> Tu idea es parar todo el source code de la página a un xml?
>
>
> El lun., 16 dic. 2019 11:19, Federico Brest <federiconbrest en gmail.com>
> escribió:
>
>> Muchas gracias por responder tan pronto :)
>> Va de nuevo el código completo:
>>
>> #import json
>> import requests
>> import io
>> import xml.etree.ElementTree as ET
>>
>> def validar_cuit(cuit):
>> # validaciones minimas
>> if len(cuit) != 11:
>> #print("False")
>> return False
>>
>> base = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
>>
>> #cuit = cuit.replace("-", "") # remuevo las barras
>>
>> # calculo el digito verificador:
>> aux = 0
>> for i in range(10):
>> aux += int(cuit[i]) * base[i]
>>
>> aux = 11 - (aux - (int(aux / 11) * 11))
>>
>> if aux == 11:
>> aux = 0
>> if aux == 10:
>> aux = 9
>>
>> #print("True")
>> return aux == int(cuit[10])
>>
>> def getInfoFromApi(cuit):
>> custom_header = {
>> 'usuario_apikey': "Q2syVkQ2NW1UN2c3MWREWGSDDSWNQeWxVRnJVUT09",
>> 'Cookie':
>> "__cfduid=de5890d2d1645d87b18692a6ad91d6adsrtvcsf1576011069;
>> PROVEEDOR=l5r3dteuh2rkge4t9qm85tl8sm; ROUTEID=.1",
>> }
>>
>> url = 'https://informe.unproveedor.com/api/informes/solicitar/' +
>> str(cuit)
>> args = {'formato':'xml', 'procesar_forzado':'1', 'cuit': cuit }
>>
>> response = requests.get(url, headers=custom_header, data=args)
>> tree = ET.parse(response.text)
>> root = tree.getroot()
>> #content = response.json()
>>
>> print("-- Status Code:", response.status_code)
>>
>> return content
>>
>> def saveInfo(content, filename):
>> with io.open(filename, 'w', encoding='utf8') as file:
>> #json.dump(content, file, indent=4, ensure_ascii=False)
>> file.write(response.text)
>>
>> if __name__ == '__main__':
>> cuit = input("Ingrese un numero de cuit: ")
>>
>> print("- Obteniendo información de", cuit)
>> info = getInfoFromApi(cuit)
>>
>> cuitValido = validar_cuit(cuit)
>> if cuitValido == False:
>> print("El Cuit ",cuit," es Invalido")
>> print("Presione una tecla para Finalizar...")
>> msvcrt.getch()
>> else:
>> print("cuil válido")
>>
>> filename = cuit + '.xml'
>> saveInfo(info, filename)
>> print("- Guardado en", filename)
>>
>> print("Presione una tecla para finalizar...")
>> msvcrt.getch()
>>
>> Abrazo, y nuevamente muchas gracias.
>>
>> El lun., 16 dic. 2019 a las 11:14, Lucas Paiva (<lucaspaiva.ar en gmail.com>)
>> escribió:
>>
>>> Como estas? lo que pasa que la cosa esta justamente en la función que no
>>> estas mostrandonos, si tiene las credentials del cliente sacaselas pero
>>> mostranos como traes los datos de la api.
>>> De todas maneras vos decis :
>>> "cuando se supone que supone que deberìa crear un XML con lo que me
>>> devuelve la API, lo que esta haciendo es buscar un archivo local con ese
>>> nombre y me lo muestra en la consola...."
>>>
>>> Y la funcion siguiente hace exactamente eso:
>>>
>>> ef saveInfo(content, filename):
>>> with io.open(filename, 'w', encoding='utf8') as file:
>>> file.write(response.text)
>>>
>>> Aca estas escribiendo un archivo y luego imprimir el contenido por
>>> pantalla. y por lo que se entiende del resto del codigo lo estas creando
>>> con extension .XML
>>>
>>> De todas maneras si mal no recuerdo para escribir un archivo XML valido,
>>> deberias hacer algo como:
>>> Importar ET de element.etree y hacer algo como :
>>> my_data = ET.tostring(res_de_api_o_content_xml)
>>> file = ipen("sarasa.xml","w)
>>> file.write(my_data)
>>>
>>> Sory si no esta todo correcto , lo escribí asi nomas sin probar ningún
>>> código.
>>>
>>> Saludos.
>>>
>>> Lucas
>>>
>>> El lun., 16 dic. 2019 a las 11:02, Federico Brest (<
>>> federiconbrest en gmail.com>) escribió:
>>>
>>>> Hola gente,
>>>> Hic eel siguiente script, pero estoy teniendo problemas...cuando se
>>>> supone que supone que deberìa crear un XML con lo que me devuelve la API,
>>>> lo que esta haciendo es buscar un archivo local con ese nombre y me lo
>>>> muestra en la consola....
>>>> Algune podrá darme una mano?
>>>> Envío el código en cuestión:
>>>>
>>>> def saveInfo(content, filename):
>>>> with io.open(filename, 'w', encoding='utf8') as file:
>>>> file.write(response.text)
>>>>
>>>> if __name__ == '__main__':
>>>> cuit = input("Ingrese un numero de cuit: ")
>>>>
>>>> print("- Obteniendo información de", cuit)
>>>> info = getInfoFromApi(cuit)
>>>>
>>>> ''' getInfoFromApi es otra funcion que esta declarada en el script. No
>>>> la transcribo porque estan las key de acceso de lcliente...de todas formas,
>>>> esa funcion anda '''
>>>>
>>>> cuitValido = validar_cuit(cuit) #esta es otra funcion que esta
>>>> declarada en el script
>>>> if cuitValido == False:
>>>> print("El Cuit ",cuit," es Invalido")
>>>> print("Presione una tecla para Finalizar...")
>>>> msvcrt.getch()
>>>> else:
>>>> print("cuil válido")
>>>>
>>>> filename = cuit + '.xml'
>>>> saveInfo(info, filename)
>>>> print("- Guardado en", filename)
>>>>
>>>>
>>>> Desde ya muchas gracias!!
>>>>
>>>> --
>>>> * Ing. Federico N. Brest*
>>>> Ingeniero en Sistemas de Información
>>>> Becario Investigador
>>>> Universidad Tecnológica Nacional
>>>> Facultad Regional Buenos Aires
>>>>
>>>> “*¿El éxito es la meta? Pienso que no. La meta es conseguir, defender
>>>> y mantener nuestra libertad*” - Richard Stallman
>>>> *P* *Antes de imprimir este mensaje, piense si realmente es necesario.
>>>> ¡Cuidemos nuestro Ambiente!*
>>>> _______________________________________________
>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>> Sitio web: http://www.python.org.ar/
>>>>
>>>> Para administrar la lista (o desuscribirse) entrar a
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>
>>> _______________________________________________
>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>> Sitio web: http://www.python.org.ar/
>>>
>>> Para administrar la lista (o desuscribirse) entrar a
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>
>>
>>
>> --
>> * Ing. Federico N. Brest*
>> Ingeniero en Sistemas de Información
>> Becario Investigador
>> Universidad Tecnológica Nacional
>> Facultad Regional Buenos Aires
>>
>> “*¿El éxito es la meta? Pienso que no. La meta es conseguir, defender y
>> mantener nuestra libertad*” - Richard Stallman
>> *P* *Antes de imprimir este mensaje, piense si realmente es necesario.
>> ¡Cuidemos nuestro Ambiente!*
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
--
* Ing. Federico N. Brest*
Ingeniero en Sistemas de Información
Becario Investigador
Universidad Tecnológica Nacional
Facultad Regional Buenos Aires
“*¿El éxito es la meta? Pienso que no. La meta es conseguir, defender y
mantener nuestra libertad*” - Richard Stallman
*P* *Antes de imprimir este mensaje, piense si realmente es necesario.
¡Cuidemos nuestro Ambiente!*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191216/da88f6da/attachment-0001.html>
Más información sobre la lista de distribución pyar