I am scrapping congress expenses from https://dadosabertos.camara.leg.br/swagger/api.html and I want to have a data frame with all expenses from all congress man.
The code below gets all expenses from the congress man with ID 204528. There are 513 of them and want to create a single data frame with all data. I have already a df with all congressman Id so I am assuming I need to use a loop to fetch all data. Can you please help ?
url = 'https://dadosabertos.camara.leg.br/api/v2/deputados/204528/despesas'
params = {'ano':'2020','ordem':'ASC','ordenarPor':'ano'}
resultado = requests.get(url,params=params)
objetos = json.loads(resultado.text)
dados = objetos['dados']
df = pd.DataFrame(dados)
df.head()
CodePudding user response:
If you have list of ids you can use loop to load all the dataframes and at the end .concat
them:
import requests
import pandas as pd
url = "https://dadosabertos.camara.leg.br/api/v2/deputados/{}/despesas"
params = {"ano": "2020", "ordem": "ASC", "ordenarPor": "ano"}
ids = [204528] # <--- your id list
all_dfs = []
for id_ in ids:
resultado = requests.get(url.format(id_), params=params)
objetos = resultado.json()
dados = objetos["dados"]
df = pd.DataFrame(dados)
all_dfs.append(df)
df_final = pd.concat(all_dfs)
print(df_final.head())
Prints:
ano mes tipoDespesa codDocumento tipoDocumento codTipoDocumento dataDocumento numDocumento valorDocumento urlDocumento nomeFornecedor cnpjCpfFornecedor valorLiquido valorGlosa numRessarcimento codLote parcela
0 2020 1 MANUTENÇÃO DE ESCRITÓRIO DE APOIO À ATIVIDADE PARLAMENTAR 7030911 Nota Fiscal 0 2020-01-08 185064439 37.99 https://www.camara.leg.br/cota-parlamentar/documentos/publ/3195/2020/7030911.pdf Eletropaulo Metropolitana Eletricidade de São Paulo S.A. ENEL 61695227000193 37.99 0.0 1683859 0
1 2020 1 MANUTENÇÃO DE ESCRITÓRIO DE APOIO À ATIVIDADE PARLAMENTAR 7030914 Nota Fiscal 0 2020-01-08 185067098 58.57 https://www.camara.leg.br/cota-parlamentar/documentos/publ/3195/2020/7030914.pdf Eletropaulo Metropolitana Eletricidade de São Paulo S.A. ENEL 61695227000193 58.57 0.0 1683859 0
2 2020 2 MANUTENÇÃO DE ESCRITÓRIO DE APOIO À ATIVIDADE PARLAMENTAR 7030912 Nota Fiscal 0 2020-02-08 192932469 96.12 https://www.camara.leg.br/cota-parlamentar/documentos/publ/3195/2020/7030912.pdf Eletropaulo Metropolitana Eletricidade de São Paulo S.A. ENEL 61695227000193 96.12 0.0 1683863 0
3 2020 2 MANUTENÇÃO DE ESCRITÓRIO DE APOIO À ATIVIDADE PARLAMENTAR 7030913 Nota Fiscal 0 2020-02-08 192934315 71.95 https://www.camara.leg.br/cota-parlamentar/documentos/publ/3195/2020/7030913.pdf Eletropaulo Metropolitana Eletricidade de São Paulo S.A. ENEL 61695227000193 71.95 0.0 1683863 0
4 2020 3 MANUTENÇÃO DE ESCRITÓRIO DE APOIO À ATIVIDADE PARLAMENTAR 7044361 Nota Fiscal 0 2020-03-09 200847016 42.36 https://www.camara.leg.br/cota-parlamentar/documentos/publ/3195/2020/7044361.pdf Eletropaulo Metropolitana Eletricidade de São Paulo S.A. ENEL 61695227000193 42.36 0.0 1690648 0