Open reichaves opened 4 years ago
Olá, Reinaldo!
Obrigado pelo contato e pelo interesse no Dados Abertos.
Parece provável que seu script esteja passando do limite de requisições por segundo. Experimente inserir um intervalo de 100ms entre elas.
De toda forma, pelo que você descreveu, não dá para saber exatamente o problema ocorrido, e tudo indica que sua aplicação não está fazendo a verificação do status code da resposta antes de tentar processar o que recebeu. Um código igual ou maior que 400 indica que houve um problema e que, muito provavelmente, o corpo da resposta não é o que você estava esperando.
Abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
Olá Fabricio Obrigado
Aqui o código, para tramitações que usei:
import pandas as pd
import requests
kwargs = {'sep': ',', 'dtype': str, 'encoding': 'utf-8'}
encontrados = pd.read_csv("resultados/camara/exemplo_proposicoes.csv", **kwargs)
encontrados.info()
endpoint = "https://dadosabertos.camara.leg.br/api/v2/proposicoes/"
projetos = []
for num, row in encontrados.iterrows():
id = row['id']
siglaTipo = row['siglaTipo']
ano = row['ano']
ementa = row['ementa']
url = endpoint + id + "/tramitacoes"
print(url)
parametros = {'formato': 'json'}
resposta = requests.get(url, parametros)
for vez in resposta.json()['dados']:
dicionario = {"id": id,
"siglaTipo": siglaTipo,
"ano": ano,
"ementa": ementa,
"dataHora": str(vez['dataHora']).strip(),
"sequencia": str(vez['sequencia']).strip(),
"siglaOrgao": str(vez['siglaOrgao']).strip(),
"uriOrgao": str(vez['uriOrgao']).strip(),
"regime": str(vez['regime']).strip(),
"descricaoTramitacao": str(vez['descricaoTramitacao']).strip(),
"codTipoTramitacao": str(vez['codTipoTramitacao']).strip(),
"descricaoSituacao": str(vez['codTipoTramitacao']).strip(),
"codSituacao": str(vez['codSituacao']).strip(),
"despacho": str(vez['despacho']).strip(),
"url": str(vez['url']).strip(),
"ambito": str(vez['ambito']).strip()
}
projetos.append(dicionario)
df_projetos_api = pd.DataFrame(projetos)
No arquivo exemplo_proposicoes.csv estão os ids. O arquivo está aqui: https://drive.google.com/file/d/1pYxt06_QU-N4CCxVYEYkb_XWSrXOHJ_1/view?usp=sharing
Até o ano passado este código funcionava muito rápido, sem erro, para mais de 8.000 requisições
Agora, após algumas requisições sempre dá erro, como se a requisição voltasse vazia:
JSONDecodeError Traceback (most recent call last)
Olá Por favor, estou acessando a API para detalhes das proposições (exemplo - https://dadosabertos.camara.leg.br/api/v2/proposicoes/197605) Mas fiz um script para fazer várias requisições, uma por vez. Porém sempre tem um erro depois de algumas feitas, porque retorna vazia: JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Há algum problema na velocidade de resposta?