Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Falha ao converter string to float após 45mi linhas #9

Closed
brunoparodi opened this issue May 30, 2019 · 47 comments
Closed

Falha ao converter string to float após 45mi linhas #9

brunoparodi opened this issue May 30, 2019 · 47 comments

Comments

@brunoparodi
Copy link

brunoparodi commented May 30, 2019

O problema acontecia antes de mudar a versão do cnpj.py.
Criei um .bat que chama: Z:\GitHub\dadosCNPJ\venv\Scripts\python.exe cnpj.py "Z:\GitHub\dadosCNPJ\cnpj\F.K032001K.D90511" "csv" "Z:\GitHub\dadosCNPJ"

Estava acompanhando o progresso, a última visualização que tive foi que tinha passado das 45.000.000 linhas (informação de saída do progresso do programa).

Gerou um empresa.csv de 6,513GB, com 22.067.491 linhas (fiz consulta pelo Excel colocando uma coluna de índices)

O arquivo de CNPJ é do dia 22/05/2019 de 97,433GB - F.K032001K.D90511

Ao que me parece, a string que ele não consegue converter para float é " ", um espaço, pois no prompt é o que dá para selecionar, um espaço vazio.

Z:\GitHub\dadosCNPJ>Z:\GitHub\dadosCNPJ\venv\Scripts\python.exe cnpj.py "Z:\GitH
ub\dadosCNPJ\cnpj\F.K032001K.D90511" "csv" "Z:\GitHub\dadosCNPJ"
Traceback (most recent call last):7900000.
File "cnpj.py", line 304, in
main()
File "cnpj.py", line 293, in main
cnpj_full(input_path, tipo_output, output_path)
File "cnpj.py", line 169, in cnpj_full
for i, dado in enumerate(dados):
File "Z:\GitHub\dadosCNPJ\cfwf.py", line 104, in _cfwf_chunck_reader
yield _cfwf_chunck(chunk, type_width, colspecs, names, dtype)
File "Z:\GitHub\dadosCNPJ\cfwf.py", line 94, in _cfwf_chunck
.astype(col_type))
File "Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\generic.py", line
5691, in astype
**kwargs)
File "Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\internals\manager
s.py", line 531, in astype
return self.apply('astype', dtype=dtype, **kwargs)
File "Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\internals\manager
s.py", line 395, in apply
applied = getattr(b, f)(**kwargs)
File "Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\internals\blocks.
py", line 534, in astype
**kwargs)
File "Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\internals\blocks.
py", line 633, in _astype
values = astype_nansafe(values.ravel(), dtype, copy=True)
File "Z:\GitHub\dadosCNPJ\venv\lib\site-packages\pandas\core\dtypes\cast.py",
line 702, in astype_nansafe
return arr.astype(dtype, copy=True)
ValueError: could not convert string to float:

Z:\GitHub\dadosCNPJ>pause
Pressione qualquer tecla para continuar. . .

@fabioserpa
Copy link
Owner

@brunoparodi, infelizmente ainda não consegui baixar o arquivo disponibilizado na sexta. O download do site está muito, muito lento. Enfim, pode ser que os dados atualizados tenham "quebrado" o processamento da carga. Pela exceção que você apresentou, parece ser um problema na hora de converter as colunas de capital_social das empresas e/ou perc_capital dos sócios, que nas versões anteriores ou tinha algum número ou vinham zerados. Se o problema for somente esse, uma solução rápida seria alterar o cnpj.py para tirar a especificação de conversão dessas colunas como "float", nas linhas 98 e 130. Só acho estranho o fato de atualizações referentes a dois meses (desde a última versão em março) terem resultado em um arquivo zip quase 15% maior que o anterior. Temo que possa haver alguma diferença estrutural ou problemas no arquivo disponibilizado, mas não consigo confirmar isso por enquanto.

@fabioserpa
Copy link
Owner

fabioserpa commented May 31, 2019 via email

@brunoparodi
Copy link
Author

brunoparodi commented May 31, 2019

@brunoparodi, infelizmente ainda não consegui baixar o arquivo disponibilizado na sexta. O download do site está muito, muito lento. Enfim, pode ser que os dados atualizados tenham "quebrado" o processamento da carga. Pela exceção que você apresentou, parece ser um problema na hora de converter as colunas de capital_social das empresas e/ou perc_capital dos sócios, que nas versões anteriores ou tinha algum número ou vinham zerados. Se o problema for somente esse, uma solução rápida seria alterar o cnpj.py para tirar a especificação de conversão dessas colunas como "float", nas linhas 98 e 130. Só acho estranho o fato de atualizações referentes a dois meses (desde a última versão em março) terem resultado em um arquivo zip quase 15% maior que o anterior. Temo que possa haver alguma diferença estrutural ou problemas no arquivo disponibilizado, mas não consigo confirmar isso por enquanto.

Bom dia Fabio, obrigado pela rápida resposta.

Alterei as linhas 98 e 130 ({'capital_social': object}, {'perc_capital': object}) e vou executar novamente.

Quanto ao download, está extremamente lento e falhando direto, houve atualização dia 24, dois dias depois de eu baixar... essa ainda não consegui. A do dia 22/05/2019 deixei disponibilizado aqui:

https://drive.google.com/open?id=10UhGUqgpfCkdzV79pKNQgM-JUTULmRuy

Vou executar agora sem as linhas e informo o resultado.

Outra coisa, é possível filtrar logo no processamento a UF que eu quero, deixando o arquivo de saída mais leve?

@ernanisp
Copy link

Bom dia, eu fiz o download já duas vezes e sempre da que os dados estão corrompidos, aconteceu isso com vocês também não consigo nem descompactar, usei um gerenciador de download.

@brunoparodi
Copy link
Author

brunoparodi commented May 31, 2019

Bom dia, eu fiz o download já duas vezes e sempre da que os dados estão corrompidos, aconteceu isso com vocês também não consigo nem descompactar, usei um gerenciador de download.

Faz o download que eu disponibilizei.

Quanto as mudanças nas linhas 98 e 130, surgiram efeito.

Início do processo 06:35, fim 08:22. Nem 2h.
Blocos processados: 831 até linha 83.100.000
Tamanho do arquivo 11,8GB

link do arquivo processado, zipado 3GB - https://drive.google.com/open?id=17GfB4uCLoMu0UqfD9znShg2WS0IxMM1a

@fabioserpa
Copy link
Owner

Subi uma nova versão do cnpj.py sem a conversão dessas colunas para float, e aproveitei para aprimorar o processamento para imprimir as informações das linhas de header e trailler, além de contabilizar as linhas e confrontá-las com as informações de controle no trailler, dando mais segurança se o arquivo foi completamente convertido.

@brunoparodi
Copy link
Author

Segunda eu testo.
E tem um pull request para dividir o arquivo em estados. Fiz aqui e deu certo, poderia adicionar ao projeto.

@fabioserpa
Copy link
Owner

Alguém já conseguiu fazer o download da versão de maio sem erro de CRC na descompactação? Já tentei duas vezes (e cada vez é sofrida!) e nas duas vezes deu erro de CRC. De qualquer forma rodei o cnpj.py nelas. A primeira vez deu divergência nas quantidades de linhas, o que parece confirmar que o arquivo veio corrompido. A segunda estou rodando nesse momento. @brunoparodi, estou achando que na sua primeira tentativa ele estava dando erro de conversão dos campos para float por provavelmente estar corrompido. Sugiro que tente rodar novamente com a nova versão do cnpj.py para que ele valide as quantidades ao final.

@fabioserpa
Copy link
Owner

@brunoparodi, embora o foco do CNPJ-full fosse possibilitar a carga da base em algum BD (no caso dos CSVs, a ideia seria usá-los para fazer carga em SGBDs), de forma a permitir consultas e extrações relativamente rápidas, adicionei a contribuição do @AnthraxisBR para permitir dividir o arquivo empresas.csv por UF ou municípios.

@BaiterYamato
Copy link

@fabioserpa o download da receita está corrompido mesmo, rodei o script e vem cnpj espaçado, com menos de 14 digitos, cnae inválido. Situação critica, baixei umas 5 vezes esse arquivo por computadores e redes diferentes e sempre o mesmo problema de arquivo corrompido.

@AnthraxisBR
Copy link
Contributor

@fabioserpa @baiter12 Eu também tentei baixar, deixei essa noite pela quarta ou quinta vez já e não deu, tentei por varias redes diferentes também e não baixou o arquivo completo nenhuma vez.

@ernanisp
Copy link

ernanisp commented Jun 3, 2019

Eu até consegui fazer o download do arquivo umas 5 vezes tbm, redes e sistemas operacionais diferente, windows 10, centos, ios, mas todos dão falha na hora de descompactar.

@BaiterYamato
Copy link

recomendo enviarem uma mensagem na ouvidoria da receita ou informar o Acesso à Informação.
Site Ouvidoria da Receita.

Site Acesso a Informação.

@lolmarcelol
Copy link

Utilizei aria2c para efetuar o download do arquivo no site da receita, demorou cerca de 7 horas pra baixar tudo, o arquivo veio todo certinho e tudo ok !! utilizei o script para gerar o arquivo para sqlite e esta tudo ok !!! não deu nenhum erro, tudo perfeito !!

@fabioserpa
Copy link
Owner

Quando você baixou? Você usou a versão mais atual do script que apresenta as informações de header e de controle e checa as quantidades?

@lolmarcelol
Copy link

Eu baixei o arquivo da receita ontem, é a versão de 15-05-2019, e a sua versão eu clonei do repositório hoje dia 05-06

@erijunior1
Copy link

Olá

Sr. Fabio Serpa

Antemão gostaria de parabenizá-lo pelo excelente material acima apresentado !!!
Eu sem nenhum conhecimento de desenvolvimento consegui gerar quase todos os passo sem muitos problemas !!!

Consegui gerar os arquivos:
empresas.csv
cnaes_secundarios.csv
socios.csv

Porém na hora de rodar:

Para separar por UF:
python3 separar_csv_por_uf.py

Para separar por cidade:
python3 separar_csv_por_cidade.py

Obs.: imagino ter editado o caminho do arquivo "empresas.csv" corretamente.

Apareceu a seguinte seguinte mensagem, acredito que estou errando em algum passo.

PS H:\Downloads\DADOS_ABERTOS_CNPJ> python3 separar_csv_por_uf.py
PS H:\Downloads\DADOS_ABERTOS_CNPJ> python separar_csv_por_uf.py H:\Desenvolvimento\Python\lib\site-packages\dotenv\main.py:52: UserWarning: File doesn't exist
warnings.warn("File doesn't exist {}".format(self.dotenv_path)) # type: ignore
Traceback (most recent call last):
File "separar_csv_por_uf.py", line 1, in
import settings
File "H:\Downloads\DADOS_ABERTOS_CNPJ\settings.py", line 11, in
load_dotenv(dotenv_path=env_path)
File "H:\Desenvolvimento\Python\lib\site-packages\dotenv\main.py", line 277, in load_dotenv
return DotEnv(f, verbose=verbose, **kwargs).set_as_environment_variables(override=override)
File "H:\Desenvolvimento\Python\lib\site-packages\dotenv\main.py", line 77, in set_as_environment_variables
for k, v in self.dict().items():
File "H:\Desenvolvimento\Python\lib\site-packages\dotenv\main.py", line 61, in dict
values = OrderedDict(self.parse())
File "H:\Desenvolvimento\Python\lib\collections.py", line 69, in init
self.__update(*args, **kwds)
File "H:\Desenvolvimento\Python\lib_abcoll.py", line 571, in update
for key, value in other:
File "H:\Desenvolvimento\Python\lib\site-packages\dotenv\main.py", line 67, in parse
with self._get_stream() as stream:
File "H:\Desenvolvimento\Python\lib\contextlib.py", line 17, in enter
return self.gen.next()
File "H:\Desenvolvimento\Python\lib\site-packages\dotenv\main.py", line 47, in _get_stream
elif os.path.isfile(self.dotenv_path):
File "H:\Desenvolvimento\Python\lib\genericpath.py", line 37, in isfile
st = os.stat(path)
TypeError: coercing to Unicode: need string or buffer, WindowsPath found

@AnthraxisBR
Copy link
Contributor

@erijunior1 Você criou o arquivo '.env' no projeto ?

Pra rodar os scripts da pasta extra_csv, precisa criar um arquivo .env na raiz do projeto, e informar o caminho dos arquivos .csv no 'root_folder'.

Veja o arquivo .env.example do projeto, só copiar ele, renomear pra .env, e colocar o caminho dos arquivos gerados.

@erijunior1
Copy link

Olá

Caros amigos Githubers.

@lolmarcelol @ernanisp @fabioserpa @AnthraxisBR @BaiterYamato

Não gostaria de ser visto pelos colegas deste grupo como um ASPONE.

Como acredito na ideia de ajudar para ser ajudado ou gentileza gera gentileza; gostaria de deixar aqui a minha contribuição para o grupo, nos últimos anos como não obtive muito sucesso em obter a base direto da Receita Federal, achei um outro repositor na internet.

E uma empresa que se beneficia destes dados para vende-los em forma de listas para outras empresas !!!

Caso alguém tenha interesse nesta base me solicite via e-mail: erijunior1@outlook.com.br

Obs.: base gerada em 31-05-2019 6GB

@erijunior1
Copy link

Caro amigo @AnthraxisBR

Eu já havia criado o arquivo conforme o .env.example

Fiz as seguintes alterações no arquivo:
Nome de .env.example para apenas .env
Dados do Arquivo de FILES_LOCATION=/media/Arquivos para H:\Downloads\DADOS_ABERTOS_CNPJ\empresas.csv e FILES_LOCATION=H:\Downloads\DADOS_ABERTOS_CNPJ\empresas.csv e FILES_LOCATION=H:\Downloads\DADOS_ABERTOS_CNPJ**

Nenhuma das mudanças funcionou !!!

@erijunior1 Você criou o arquivo '.env' no projeto ?

Pra rodar os scripts da pasta extra_csv, precisa criar um arquivo .env na raiz do projeto, e informar o caminho dos arquivos .csv no 'root_folder'.

Veja o arquivo .env.example do projeto, só copiar ele, renomear pra .env, e colocar o caminho dos arquivos gerados.

@AnthraxisBR
Copy link
Contributor

AnthraxisBR commented Jun 5, 2019

@erijunior1 faz um teste com:

FILES_LOCATION=H:\Downloads\DADOS_ABERTOS_CNPJ\

Não precisa colocar o 'empresas.csv' no final

Tem que ter o 'barra' no final ali do files_location

@erijunior1
Copy link

@AnthraxisBR
Meu amigo já havia tentado neste formado e nada o corre a seguinte mensagem:

PS H:\Downloads\DADOS_ABERTOS_CNPJ> python separar_csv_por_uf.py
Traceback (most recent call last):
File "separar_csv_por_uf.py", line 1, in
import settings
File "H:\Downloads\DADOS_ABERTOS_CNPJ\settings.py", line 11, in
load_dotenv(dotenv_path=env_path)
File "H:\Desenvolvimento\Python\lib\site-packages\dotenv\main.py", line 277, in load_dotenv
return DotEnv(f, verbose=verbose, **kwargs).set_as_environment_variables(override=override)

@erijunior1 faz um teste com:

FILES_LOCATION=H:\Downloads\DADOS_ABERTOS_CNPJ\

Não precisa colocar o 'empresas.csv' no final

Tem que ter o 'barra' no final ali do files_location

@erijunior1
Copy link

@AnthraxisBR

Meu amigo vou abusar um pouco mais de sua boa vontade !!!
Acabei de mandar para o seu e-mail: gabrielmouraodemelo@gmail.com

O acesso remoto ao meu computador se puder dar uma olhadinha agradeço muito !!!

@AnthraxisBR
Copy link
Contributor

AnthraxisBR commented Jun 5, 2019

@erijunior1 testei aqui e ta normal, é alguma configuração ai que ta dando problema, vamo ir debugando aqui:

Você clonou o projeto na pasta H:\Downloads\DADOS_ABERTOS_CNPJ ?

Segue esses passos:

  1. Clone o projeto
  2. Cria o arquivo .env com a licalização dos arquivos
  3. Da um cd na pasta extra csv
  4. Ai sim executa o script

Esse erro aí ta dizendo que o script separar_csv_por_uf.py não ta na mesma pasta que arquivo 'settings.py', você tirou ele da pasta extra_csv ?

Pelo que vi ali, você tirou os scripts da pasta extra_csv, e colocou na pasta H:\Downloads\DADOS_ABERTOS_CNPJ, coloca eles de novo na pasta extra_csv que vai funcionar, deixa todos os arquivos do jeito que estavam, só altera o .env.

PS: O anydesk não instala aqui onde eu to.

@erijunior1
Copy link

Não esta funcionado !!!

Primeiramente todos os arquivos estão soltos dentro da pasta :
H:\Downloads\DADOS_ABERTOS_CNPJ
F.K032001K.D90511 (Arquivo da Receita)
cnaes_secundarios.csv
empresas.csv
socios.csv
.env
cfwf.pyc
cfwf.py
settings.pyc
settings.py
CNPJ_full
cnpj.py
config.py
consulta.py
env.py
header_dict.py
rede_cnpj.py
separar_csv_por_cidade.py
separar_csv_por_uf.py

extra_csv (Pasta com os arquivos settings.py | header_dict.py | separar_csv_por_cidade.py |separar_csv_por_uf.py)

@AnthraxisBR
Copy link
Contributor

AnthraxisBR commented Jun 5, 2019

Testei aqui com os arquivos iguais e está funcionando, pode ser algo com dotenv no windows, mas não sei, porém agora não tenho windows aqui pra testar, mas faz outro teste, assim talvez funcione:

abre o arquivo: settings.py

e deixa ele assim :

from dotenv import load_dotenv
load_dotenv()

se não funcionar, deixa ele assim:

from dotenv import load_dotenv

env_path = 'H:\Downloads\DADOS_ABERTOS_CNPJ\.env'
load_dotenv(dotenv_path=env_path)

@erijunior1
Copy link

from dotenv import load_dotenv
load_dotenv()

Ficou:

PS H:\Downloads\DADOS_ABERTOS_CNPJ\extra_csv> python separar_csv_por_uf.py Traceback (most recent call last):
File "separar_csv_por_uf.py", line 9, in
with codecs.open(location + file, 'r+', 'utf-8') as empresas:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
PS H:\Downloads\DADOS_ABERTOS_CNPJ\extra_csv>


se não funcionar, deixa ele assim:

from dotenv import load_dotenv

env_path = 'H:\Downloads\DADOS_ABERTOS_CNPJ.env'
load_dotenv(dotenv_path=env_path)

Ficou:

PS H:\Downloads\DADOS_ABERTOS_CNPJ\extra_csv> python separar_csv_por_uf.py Traceback (most recent call last):
File "separar_csv_por_uf.py", line 9, in
with codecs.open(location + file, 'r+', 'utf-8') as empresas:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
PS H:\Downloads\DADOS_ABERTOS_CNPJ\extra_csv>

@ernanisp
Copy link

ernanisp commented Jun 6, 2019

Bom dia pessoal, ontem tentei fazer novamente o download do arquivo e estava fora do ar, alguém conseguiu fazer um novo download sem dar problema na hora de descompactar? Eu mandei os e-mail informando que os arquivos estava com problema. Será que arrumaram este arquivo....

@LucasGeek
Copy link

Então, para a questão de nao dar problemas de no download e na hora de descompactar eu uso o ARIA2C "https://aria2.github.io/". Esse cara me ajuda bastante na questão de download de arquivos grandes. Faca download com esse cara ai tenta descompactar, fiz o download ontem do arquivo e nao tive problemas, no momento ja ate estrai sqlite do arquivo.

@ernanisp
Copy link

ernanisp commented Jun 6, 2019

o link está fora do ar. Obrigado pela dica do aria2.

@BaiterYamato
Copy link

BaiterYamato commented Jun 6, 2019

Pelo visto a receita deixou fora do ar o arquivo, devem estar refazendo para dar reupload (espero eu)

@BaiterYamato
Copy link

lançaram na receita http://200.152.38.155/CNPJ/ o arquivo separado em 20 partes, agora é testar para ver se está tudo ok

@fabioserpa
Copy link
Owner

Ainda não baixei, mas são arquivos independentes ou dezipam para um mesmo arquivo? Se forem independentes, pelo menos a conversão para sqlite precisará de uma adaptação para ser util

@BaiterYamato
Copy link

@fabioserpa pelo que eu vi são arquivos independentes, tendo que rodar o script para estruturar em cada parte e dar um join depois de estruturado

@fabioserpa
Copy link
Owner

fabioserpa commented Jun 11, 2019

Não consegui terminar de baixar nem o segundo arquivo ainda (!!!) mas pelo que vi no primeiro, suponho que são arquivos independentes quando zipados, porém com registro header apenas no primeiro e registro de controle apenas no último. Já subi a adaptação do script para suportar essa nova forma.
Uso: python cnpj.py <pasta_dos_zips> <sqlite|csv> <pasta_de_saida> --dir

@ernanisp
Copy link

Bom dia pessoal, baixei os novos arquivos e tentei rodar deu este erro, de alguem mais deu erro?

PS C:\DADOS_ABERTOS_CNPJ> python cnpj.py "C:\DADOS_ABERTOS_CNPJ" sqlite "C:\DADOS_ABERTOS_CNPJ" --dir
Iniciando processamento em 2019-06-11 09:51:54.744556
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_01.zip
Processando bloco 1: até linha 200000.
INFORMACOES DO HEADER:
Nome do arquivo: F.K032001K
Data de gravacao: 20190514
Numero da remessa: 00000001
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_02.zip
Traceback (most recent call last):0000.
File "cnpj.py", line 440, in
main()
File "cnpj.py", line 432, in main
cnpj_full(input_list, tipo_output, output_path)
File "cnpj.py", line 215, in cnpj_full
for i_bloco, bloco in enumerate(dados):
File "C:\DADOS_ABERTOS_CNPJ\cfwf.py", line 104, in _cfwf_chunck_reader
for chunk in reader:
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\parsers.py", line 1115, in next
return self.get_chunk()
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\parsers.py", line 1173, in get_chunk
return self.read(nrows=size)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\parsers.py", line 1139, in read
ret = self._engine.read(nrows)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\parsers.py", line 2388, in read
content = self._get_lines(rows)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\parsers.py", line 3121, in _get_lines
new_rows.append(next(self.data))
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\parsers.py", line 3589, in next
line = next(self.f)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 7256: character maps to

@fabioserpa
Copy link
Owner

@ernanisp, pelo visto o problema ocorreu no segundo arquivo, onde ainda não cheguei. Só conseguirei trabalhar no debug e ajustes disso mais tarde, porém uma tentativa que você pode fazer é alterar diretamente o cfwf.py na sua máquina e incluir o parâmetro encoding='ISO-8859-15' na chamada do pd.read_fwf() (linhas 39 a 47). Se quiser tentar e nos dar um retorno, seria ótimo.

@ernanisp
Copy link

Boa tarde @fabioserpa as alterações que você indicou surtiram efeito. Importação realizada com sucesso.

PS C:\DADOS_ABERTOS_CNPJ> python cnpj.py "C:\DADOS_ABERTOS_CNPJ" sqlite "C:\DADOS_ABERTOS_CNPJ" --dir
Iniciando processamento em 2019-06-11 11:41:07.050410
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_01.zip
Processando bloco 1: até linha 200000.
INFORMACOES DO HEADER:
Nome do arquivo: F.K032001K
Data de gravacao: 20190514
Numero da remessa: 00000001
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_02.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_03.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_04.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_05.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_06.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_07.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_08.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_09.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_10.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_11.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_12.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_13.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_14.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_15.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_16.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_17.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_18.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_19.zip
Processando arquivo: C:\DADOS_ABERTOS_CNPJ\DADOS_ABERTOS_CNPJ_20.zip
Processando bloco 21: até linha 4200000.
INFORMACOES DE CONTROLE:
Total de registros de empresas: 40754938
Total de registros de socios: 25873191
Total de registros de CNAEs secundarios: 16445774
Total de registros incluindo header e trailler: 83073905

Conversao concluida. Validando quantidades:
Total de registros de empresas: 40754938 ok
Total de registros de socios: 25873191 ok
Total de registros de CNAEs: 16445774 ok

Arquivo SQLITE gerado: C:\DADOS_ABERTOS_CNPJ\CNPJ_full.db
OBS: Uso de índices altamente recomendado!

Criando índices...
Essa operaçao pode levar vários minutos.

Index ix_empresas_cnpj criado.

@fabioserpa
Copy link
Owner

@ernanisp, maravilha! Que bom ver que aparentemente deu tudo certo. Quando você copiou esse output o processamento ainda não havia encerrado, certo? Ainda estava criando os índices no sqlite. Depois poderia informar o tempo total do processamento e as suas configurações de máquina? Obrigado.

@fabioserpa
Copy link
Owner

Em tempo, já atualizei os scripts no repositório para esse usar esse encoding.

@ernanisp
Copy link

ernanisp commented Jun 11, 2019

Todo processo levou umas 2 horas, rodei em um windows 7 sp1, 4gb de ram e core i3. Com um monte de coisa rodando. Gerei o arquivo no formato sqlite e ficou perfeito as informações. Se alguém tiver tendo dificuldade para baixar posso colocar os arquivos no drive.

@BaiterYamato
Copy link

startando o processamento aqui, em breve informo o tempo total decorrido e as config.

@BaiterYamato
Copy link

1 hora e 24 minutos, windows 10, 16gb ram, intel core i7 7 geração

@erijunior1
Copy link

Processo show de bola !!!

Mesmo sem saber nenhuma linha de programação corretamente, consegui gerar o arquivo em CSV !!!

Só não deu certo o script de divisão de UF nem CIDADES !!!

Acabei usando o Power Query para efetuar as divisões, deu muito certo !!!

PS H:\Downloads\cnpj> python cnpj.py H:\Downloads\cnpj\ csv H:\Downloads\cnpj\ --dir Iniciando processamento em 2019-06-18 10:48:16.953000
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_01.zip

INFORMACOES DO HEADER:
Nome do arquivo: F.K032001K
Data de gravacao: 20190514
Numero da remessa: 00000001
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_02.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_03.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_04.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_05.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_06.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_07.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_08.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_09.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_10.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_11.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_12.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_13.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_14.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_15.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_16.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_17.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_18.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_19.zip
Processando arquivo: H:\Downloads\cnpj\DADOS_ABERTOS_CNPJ_20.zip

INFORMACOES DE CONTROLE:
Total de registros de empresas: 40754938
Total de registros de socios: 25873191
Total de registros de CNAEs secundarios: 16445774
Total de registros incluindo header e trailler: 83073905

Conversao concluida. Validando quantidades:
ok
ok
ok
Arquivos CSV gerados na pasta H:\Downloads\cnpj.
Processamento concluido em 2019-06-18 15:09:19.840000

@jonattangamboa
Copy link

Todo processo levou umas 2 horas, rodei em um windows 7 sp1, 4gb de ram e core i3. Com um monte de coisa rodando. Gerei o arquivo no formato sqlite e ficou perfeito as informações. Se alguém tiver tendo dificuldade para baixar posso colocar os arquivos no drive.

Seria ótimo! Pode disponibilizar por favor?

@cfsobral
Copy link

cfsobral commented Feb 16, 2021

Boa noite.

Para informar a voces. O codigo rodou perfeitamente para gerar os files: empresas.csv, socios.csv e cnae_secundarios.csv. Porem não rodou os python3 separar_csv_por_uf.py & python3 separar_csv_por_cidade.py. O erros que aparecem sao os mesmo, como segue abaixo:

Traceback (most recent call last):
File "/Volumes/Data/Master/separar_csv_por_cidade.py", line 9, in
with codecs.open(location + file,'r+','utf-8') as empresas:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

Seguinte, estou usando sistema UNIX. Se alguem tiver alguma informacao de como extrair as cidades e UF, agradeço. Mas agradeço tambem porque o Job rodou perfeitamente gerando os csv's. Obrigado.

@rictom
Copy link

rictom commented Feb 16, 2021

Acho que a variável location não foi definida, provavelmente porque vc não especificou no ambiente, a linha 5
location = os.getenv('FILES_LOCATION')
Eu sugiro vc botar alguma coisa como
location = ''
ou
location = caminho para a pasta

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests