git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Decodificar base64 en Odoo 12


El martes, 5 de marzo de 2019, 3:05:07 (UTC-6), Peter Otten escribi?:
> angiielovee177 at gmail.com wrote:
> 
> > El lunes, 4 de marzo de 2019, 11:07:40 (UTC-6), Peter Otten escribi?:
> >> Angie GL wrote:
> >> 
> >> > Hola a todos, tengo un problema al decodificar el contenido de una
> >> > variable base64.
> >> > 
> >> > De esta manera lo hago:
> >> > 
> >> > cfdi = base64.b64decode(inv.l10n_mx_edi_cfdi)
> >> > 
> >> > 
> >> > 
> >> > Al momento de decodificar el resultado que me env?a es esto:
> >> > 
> >> > b'\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n'
> >> > 
> >> > Alguien que me pueda decir que estoy haciendo mal, lo cheque en la
> >> > consola Python3 y todo va bien, pero dentro de Odoo no lo decodifica.
> >> 
> >> What result did you expect?
> >> 
> >> What is the value of inv.l10n_mx_edi_cfdi? For
> >> 
> >> b'CgogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCgo='
> >> 
> >> you see the correct result:
> >> 
> >> >>> base64.b64decode(b'CgogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCgo=')
> >> b'\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n'
> > 
> > El valor de la variable inv.l10n_mx_edi_cfdi es una factura en formato
> > base64, el resultado que espero es que decodifique la factura para
> > posteriormente mostrarlo. PERO NO LO DECODIFICA,ya verifique el valor de
> > la variable pero no lo hace.
> 
> If you replace the line
> 
> >> > cfdi = base64.b64decode(inv.l10n_mx_edi_cfdi)
> 
> in your script with
> 
> cfdi = inv.l10n_mx_edi_cfdi
> print(type(cfdi))
> print(repr(cfdi))
> cfdi = base64.b64decode(cdfi)
> print(repr(cfdi))
> 
> what gets printed? Use cut and paste to post the result. If there is a 
> traceback post that, too. Thank you.

Este es el resultado de cada linea:

> cfdi = inv.l10n_mx_edi_cfdi
> print(type(cfdi)) No imprime nada
> print(repr(cfdi)) Imprime la cadena en base64, es bastabte larga.(b'PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPGNmZGk6Q29tcHJvYmFudGUgeG1sbnM6Y2ZkaT0iaHR0cDovL3d3dy5zYXQuZ29iLm14L2NmZC8zIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9jZmQvMyBodHRwOi8vd3d3LnNhdC5nb2IubXgvc2l0aW9faW50ZXJuZXQvY2ZkLzMvY2ZkdjMzLnhzZCIgVmVyc2lvbj0iMy4zIiBTZWxsbz0iR1k1MVlrd1FCTC9vL2I2ZHA4aXBXcFM1MjlZcTFNSkdXV2IwN1VodW82UXFzb3I2MGJKNGZOVWZjS0t5YlVOR0tud0RCTEJ0c2tZTDVUVFU1SThLZ2MxbkxTYzZXdkl5YXcxQkVYd0hVSXdUM1pJSXBjYXhITTVadzRrMkhCZ0JraDZ3SndoOVAwZWN1Mk94bXd4dkhoMmhrUGRCbVNXcm1SUWt3NThVNWpieStqU1ltTW9SOUZacnVPVEt6NXlseTNUamJZODBwMUt0MXNOZXhJQW9rM0ZIbEQ4cmhrZmVLVDVyam10WXZ2Q2l2NmhuaVExclBPeHpYek1TY3VXY0pCZFJvQ1AxUmRGVkNmY1FxOVF1Umptb3VTRW9HZzl5N1BkSFlNa01vZnNnRXJuaGg2ZXcwRncrWUtyMFV5V1lNSHMvZ2JJckxucHJndlRXTmVnNG5RPT0iIEZlY2hhPSIyMDE5LTAzLTA0VDE1OjE3OjAyIiBGb2xpbz0iMTEiIFNlcmllPSJJTlYvMjAxOS8iIEZvcm1hUGFnbz0iMDQiIE5vQ2VydGlmaWNhZG89IjIwMDAxMDAwMDAwMzAwMDIyODE1IiBDZXJ0aWZpY2Fkbz0iTUlJRnhUQ0NBNjJnQXdJQkFnSVVNakF3TURFd01EQXdNREF6TURBd01qSTRNVFV3RFFZSktvWklodmNOQVFFTEJRQXdnZ0ZtTVNBd0hnWURWUVFEREJkQkxrTXVJRElnWkdVZ2NISjFaV0poY3lnME1EazJLVEV2TUMwR0ExVUVDZ3dtVTJWeWRtbGphVzhnWkdVZ1FXUnRhVzVwYzNSeVlXTnB3N051SUZSeWFXSjFkR0Z5YVdFeE9EQTJCZ05WQkFzTUwwRmtiV2x1YVhOMGNtRmphY096YmlCa1pTQlRaV2QxY21sa1lXUWdaR1VnYkdFZ1NXNW1iM0p0WVdOcHc3TnVNU2t3SndZSktvWklodmNOQVFrQkZocGhjMmx6Ym1WMFFIQnlkV1ZpWVhNdWMyRjBMbWR2WWk1dGVERW1NQ1FHQTFVRUNRd2RRWFl1SUVocFpHRnNaMjhnTnpjc0lFTnZiQzRnUjNWbGNuSmxjbTh4RGpBTUJnTlZCQkVNQlRBMk16QXdNUXN3Q1FZRFZRUUdFd0pOV0RFWk1CY0dBMVVFQ0F3UVJHbHpkSEpwZEc4Z1JtVmtaWEpoYkRFU01CQUdBMVVFQnd3SlEyOTViMkZqdzZGdU1SVXdFd1lEVlFRdEV3eFRRVlE1TnpBM01ERk9Uak14SVRBZkJna3Foa2lHOXcwQkNRSU1FbEpsYzNCdmJuTmhZbXhsT2lCQlEwUk5RVEFlRncweE5qRXdNalV5TVRVeU1URmFGdzB5TURFd01qVXlNVFV5TVRGYU1JR3hNUm93R0FZRFZRUURFeEZEU1U1RVJVMUZXQ0JUUVNCRVJTQkRWakVhTUJnR0ExVUVLUk1SUTBsT1JFVk5SVmdnVTBFZ1JFVWdRMVl4R2pBWUJnTlZCQW9URVVOSlRrUkZUVVZZSUZOQklFUkZJRU5XTVNVd0l3WURWUVF0RXh4TVFVNDNNREE0TVRjelVqVWdMeUJHVlVGQ056Y3dNVEUzUWxoQk1SNHdIQVlEVlFRRkV4VWdMeUJHVlVGQ056Y3dNVEUzVFVSR1VrNU9NRGt4RkRBU0JnTlZCQXNVQzFCeWRXVmlZVjlEUmtSSk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBZ3Z2Q2lDRkRGVmFZWDd4ZFZSaHAvMzhVTFd0by9MS0RTWnkxeXJYS3BhcUZYcUVSSldGNzhZSEtmM041R0JvWGd6d0ZQdURYKzVrdlk1d3RZTnh4L093dTJzaE5acUZGaDZFS3N5c1FNZVA1cno2a0UxZ0ZZZW5hUEVVUDl6aitoMGJMM3hSNWFxb1RzcUdGMjRtS0JMb2lhSzQ0cFhCekd6Z3N4WmlzaFZKVk02WGJ6TkpWb25FVU5iSTI1RGhnV0FkODZmMmFVM0JtT0gySzFSWng0MWR0VFQ1NlVzc3pKbHM0dFBGT0RyL2NhV3VaRXVVdkxwMU0zbmo3RHl1ODhtaEQyZisxZkEvZzdremNVLzF0Y3BGWEYvckl5OTNBUHZrVTcyand2a3JucHJ6cytTbkc4MSsvRjE2YWh1R3NiMkVaODhkS0h3cXhFa3d6aE15VGJRSURBUUFCb3gwd0d6QU1CZ05WSFJNQkFmOEVBakFBTUFzR0ExVWREd1FFQXdJR3dEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFKL3hrTDhJK2ZwaWxaUCs5YU84bjkzKzIwWHhWb21MSmplU0wrTmcyRXJMMkdnYXRwTHVONUprbkZCa1pBaHhWSWdNYVRTMjN6emsxUkx0UmFZdkg4M2xCSDVFK00ra0VqRkdwMTRGbmUxaVYyUG0zdkw0amVMbXpIZ1kxS2Y1SG1lVnJycDRQVTdXUWcxNlZweUhhSi9lb25QTmlFQlVqY3lRMWlGZmt6Sm1uU0p2REd0ZlFLMlRpRW9sREpBcFl2ME9XZG00aXM5QnNmaTlqNmxJOS9UNk1OWisvTE0yTC90NzJWYXU0cjdtOTRKREV6YU8zQTB3SEF0UTk3ZmpCZkJpTzVNOEFFSVNBVjdlWmlkSWwzaWFKSkhrUWJCWWlpVzJnaWtyZVVaS1BVWDBIbWxuSXFxUWNCSmhXS1J1Nk5xazZhWkJURVRMTHBHcnZGOU9BclYxSlNzYmR3L1pIK1A4OFJBdDVlbTUvZ2p3d3RGbE5IeWlLRzV3K1VGcGFaT0szZ1pQMHN1MHNhNmRsUGVROUVMNEpsRmtHcVFDZ1NRK05Pc1hxYU9hdmdvUDVWTHlrTHd1R253SVVudWhCVFZlRGJ6cGdyZzlMdUY1ZFlwL3pzK1k5U2NKcWU1Vk1BYWdMU1lUU2hOdE44bHVWN0x2eEY5cGdXd1pkY003bFV3cUptVWRkQ2lacWRuZ2czdnpUYWN0TVRvRzE2Z1pBNENXbk1nYlU0RStyNTQxK0ZOTXBnQVpOdnMyQ2lXL2VBcGZhYVFvanNaRUFIRHNEdjRMNW4zTTFDQzdmWWpFL2Q2MWFTbmcxTGFPNlQxbWgrZEVmUHZMenA3enl6eitVZ1dNaGk1Q3M0cGNYeDFlaWM1cjd1eFBvQndjQ1R0M1lJMWpLVlZuVjcvdz0iIENvbmRpY2lvbmVzRGVQYWdvPSJQYWdvIGlubWVkaWF0byIgU3ViVG90YWw9IjQwMDAuMDAiIE1vbmVkYT0iTVhOIiBUb3RhbD0iNDY0MC4wMCIgVGlwb0RlQ29tcHJvYmFudGU9IkkiIE1ldG9kb1BhZ289IlBVRSIgTHVnYXJFeHBlZGljaW9uPSI3MTEwMCI+CiAgPGNmZGk6RW1pc29yIFJmYz0iTEFONzAwODE3M1I1IiBOb21icmU9Ik15IENvbXBhbnkiIFJlZ2ltZW5GaXNjYWw9IjYwMSIvPgogIDxjZmRpOlJlY2VwdG9yIFJmYz0iTUFHMDQxMTI2R1Q4IiBOb21icmU9IkJ1aWxkIiBVc29DRkRJPSJHMDMiLz4KICA8Y2ZkaTpDb25jZXB0b3M+CiAgICA8Y2ZkaTpDb25jZXB0byBDbGF2ZVByb2RTZXJ2PSIwMTAxMDEwMSIgTm9JZGVudGlmaWNhY2lvbj0iQ09OIiBDYW50aWRhZD0iMi4wIiBDbGF2ZVVuaWRhZD0iSDg3IiBVbmlkYWQ9IlVuaWRhZChlcykiIERlc2NyaXBjaW9uPSJbQ09OXSBDb25zdWx0b3JpYSIgVmFsb3JVbml0YXJpbz0iMjAwMC4wMCIgSW1wb3J0ZT0iNDAwMC4wMCI+CiAgICAgIDxjZmRpOkltcHVlc3Rvcz4KICAgICAgICA8Y2ZkaTpUcmFzbGFkb3M+CiAgICAgICAgICA8Y2ZkaTpUcmFzbGFkbyBCYXNlPSI0MDAwLjAwIiBJbXB1ZXN0bz0iMDAyIiBUaXBvRmFjdG9yPSJUYXNhIiBUYXNhT0N1b3RhPSIwLjE2MDAwMCIgSW1wb3J0ZT0iNjQwLjAwIi8+CiAgICAgICAgPC9jZmRpOlRyYXNsYWRvcz4KICAgICAgPC9jZmRpOkltcHVlc3Rvcz4KICAgIDwvY2ZkaTpDb25jZXB0bz4KICA8L2NmZGk6Q29uY2VwdG9zPgogIDxjZmRpOkltcHVlc3RvcyBUb3RhbEltcHVlc3Rvc1RyYXNsYWRhZG9zPSI2NDAuMDAiPgogICAgPGNmZGk6VHJhc2xhZG9zPgogICAgICA8Y2ZkaTpUcmFzbGFkbyBJbXBvcnRlPSI2NDAuMDAiIEltcHVlc3RvPSIwMDIiIFRpcG9GYWN0b3I9IlRhc2EiIFRhc2FPQ3VvdGE9IjAuMTYwMDAwIi8+CiAgICA8L2NmZGk6VHJhc2xhZG9zPgogIDwvY2ZkaTpJbXB1ZXN0b3M+CjwvY2ZkaTpDb21wcm9iYW50ZT4=')
> cfdi = base64.b64decode(cdfi)
> print(repr(cfdi)) Imprime b'\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n'

Intente con otra cadena en base64 y lo hace bien, al momento de que sea una factura no lo hace. ?Qu? podr? ser?, llevo d?as tratando de resolver este problema y solo no veo soluci?n.