from pynfe.processamento.comunicacao import ComunicacaoSefaz from pynfe.utils.descompactar import DescompactaGzip from pynfe.utils.flags import NAMESPACE_NFE from lxml import etree CNPJ = 'CPNJ_DA_EMPRESA' CHAVE = 'CHAVE_DA_NOTA_DA_CONSULTA' certificado = "/certs/cert.pfx" senha = '1234' uf = 'pi' homologacao = False con = ComunicacaoSefaz(uf, certificado, senha, homologacao) xml = con.consulta_distribuicao(cnpj=CNPJ,chave=CHAVE) #print('\n\n Retorno:') #print(xml.text) print('Descompactado \n\n') # exemplo de leitura da resposta ns = {'ns': NAMESPACE_NFE} #esse retorno precisa ser melhorado resposta = etree.fromstring(xml.content) #desconpactando a mensagem zip_resposta = resposta.xpath('//ns:retDistDFeInt/ns:loteDistDFeInt/ns:docZip', namespaces=ns)[0].text des_resposta = DescompactaGzip.descompacta(zip_resposta) #recuperando valores do resultado da descompactacao chave = des_resposta.xpath('//ns:resNFe/ns:chNFe',namespaces=ns)[0].text valor = des_resposta.xpath('//ns:resNFe/ns:vNF',namespaces=ns)[0].text print('chave:{}\nvalor:{}'.format(chave,valor))