Skip to content

Instantly share code, notes, and snippets.

@beatrizmilz
Created January 20, 2022 17:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save beatrizmilz/85686d5a4adb89f240b108edf556ece6 to your computer and use it in GitHub Desktop.
Save beatrizmilz/85686d5a4adb89f240b108edf556ece6 to your computer and use it in GitHub Desktop.
# Funcao para 1 dia -------------------------
buscar_dados_votacao <- function(data) {
# url da API
base <-
"https://legis.senado.leg.br/dadosabertos/plenario/lista/votacao/"
json <- jsonlite::fromJSON(paste0(base, data))
dados <- json |>
purrr::pluck("ListaVotacoes") |>
purrr::pluck("Votacoes") |>
purrr::pluck("Votacao") |>
dplyr::bind_rows() |>
tibble::as_tibble()
if (nrow(dados) > 0) {
usethis::ui_done("Dados obtidos para o dia {data}")
} else {
usethis::ui_oops("Dados não obtidos para o dia {data}.")
}
dados
}
# Funcao para varios dias --------------------------------------------
buscar_dados_votacoes <- function(data_inicial, data_final) {
safe_buscar_dados_votacao <-
purrr::safely(buscar_dados_votacao, "erro")
### definindo o periodo de captura
data_inicial_date <- lubridate::ymd(data_inicial)
data_final_date <- lubridate::ymd(data_final)
all_dates <- seq(data_inicial_date, data_final_date, by = "day")
endpoint <- all_dates |> stringr::str_remove_all("-")
dados_votacao <- endpoint |>
purrr::map(safe_buscar_dados_votacao) |>
purrr::map(purrr::pluck("result")) |>
purrr::compact() |>
purrr::map(~ dplyr::mutate(.x, Votos = as.list(Votos))) |>
dplyr::bind_rows()
usethis::ui_done("Dados obtidos para os dias {data_inicial} até {data_final}")
dados_votacao
}
# Exemplo de uso da função -------------------
votacoes_nov_2021 <-
buscar_dados_votacoes(data_inicial = "20211101", data_final = "20211130")
dplyr::glimpse(votacoes_nov_2021)
# Rows: 32
# Columns: 23
# $ CodigoSessao <chr> "260327", "260327", "260700", "261294", "261294", "2612…
# $ SiglaCasa <chr> "SF", "SF", "SF", "SF", "SF", "SF", "SF", "SF", "SF", "…
# $ CodigoSessaoLegislativa <chr> "865", "865", "865", "865", "865", "865", "865", "865",…
# $ TipoSessao <chr> "DOR", "DOR", "DOR", "DOR", "DOR", "DOR", "DOR", "DOR",…
# $ NumeroSessao <chr> "145", "145", "146", "150", "150", "150", "151", "152",…
# $ DataSessao <chr> "2021-11-03", "2021-11-03", "2021-11-04", "2021-11-09",…
# $ HoraInicio <chr> "16:00", "16:00", "16:00", "16:00", "16:00", "16:00", "…
# $ CodigoSessaoVotacao <chr> "6427", "6428", "6429", "6431", "6432", "6433", "6434",…
# $ SequencialSessao <chr> "1", "2", "1", "1", "2", "3", "1", "1", "1", "1", "1", …
# $ Secreta <chr> "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", …
# $ DescricaoVotacao <chr> "Votação nominal da Emenda nº 4 - PLEN (Substitutivo) à…
# $ Resultado <chr> "A", "A", "A", "A", "R", "A", "A", "A", "A", "A", "R", …
# $ CodigoMateria <chr> "128403", "128403", "149045", "144067", "144067", "1440…
# $ SiglaMateria <chr> "PEC", "PEC", "MPV", "PEC", "PEC", "PEC", "PRS", "PLP",…
# $ NumeroMateria <chr> "00010", "00010", "01057", "00029", "00029", "00029", "…
# $ AnoMateria <chr> "2017", "2017", "2021", "2020", "2020", "2020", "2021",…
# $ SiglaCasaMateria <chr> "SF", "SF", "CN", "SF", "SF", "SF", "SF", "SF", "SF", "…
# $ DescricaoObjetivoProcesso <chr> "Revisora", "Revisora", NA, "Iniciadora", "Iniciadora",…
# $ DescricaoIdentificacaoMateria <chr> "PEC 10/2017", "PEC 10/2017", "MPV 1057/2021", "PEC 29/…
# $ Votos <named list> [[<data.frame[81 x 11]>], [<data.frame[81 x 11]>…
# $ TotalVotosSim <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "51", "…
# $ TotalVotosNao <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "7", "7…
# $ TotalVotosAbstencao <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "1", "1…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment