Skip to content

Instantly share code, notes, and snippets.

@pmarkun
Created October 10, 2023 05:13
Show Gist options
  • Save pmarkun/e6663d1c20afcbadd3293fdf49e35ac8 to your computer and use it in GitHub Desktop.
Save pmarkun/e6663d1c20afcbadd3293fdf49e35ac8 to your computer and use it in GitHub Desktop.
library(jsonlite)
library(dplyr)
library(purrr)
library(data.table)
library(progress)
# Função para extrair campos selecionados do JSON
extrai_dados_deputado <- function(id, pb) {
pb$tick()
url <- paste0("https://dadosabertos.camara.leg.br/api/v2/deputados/", id)
json_data <- fromJSON(url, flatten = TRUE)$dados
selected_fields <- data.frame(
id = json_data$id,
nome = json_data$nomeCivil,
partido = json_data$ultimoStatus$siglaPartido,
sexo = json_data$sexo,
uf = json_data$ultimoStatus$siglaUf
)
return(selected_fields)
}
# Extrai os dados selecionados para todos os IDs e adiciona ao dataframe
sample <- fread("~/devel/legisla/indicadores/indicador-bolsonaro-2023-10-09.csv")
pb <- progress_bar$new(format = "Baixando dados [:bar] :percent eta: :eta", total = length(sample$external_id))
dados_camara <- sample$external_id %>% map_dfr(~extrai_dados_deputado(.x, pb))
dados_tse <- fread("~/devel/datasets/eleicoes/2018/candidatos/consulta_cand_2018_BRASIL.csv", encoding = 'Latin-1') %>%
filter(DS_CARGO %in% c("DEPUTADO FEDERAL", "SENADOR")) %>%
select(uf=SG_UF, nome=NM_CANDIDATO, cargo=DS_CARGO, raca=DS_COR_RACA)
dados_camara$nome <- iconv(toupper(dados_camara$nome), from = "UTF-8", to = "ASCII//TRANSLIT")
dados_tse$nome <- iconv(toupper(dados_tse$nome), from = "UTF-8", to = "ASCII//TRANSLIT")
parlamentares_rico <- dados_camara %>%
left_join(dados_tse)
write.csv(parlamentares_rico, file = "~/devel/legisla/indicadores/parlamentares2019.csv")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment