url = "https://dadosabertos.camara.leg.br/api/v2/deputados?dataInicio=2023-01-01&ordem=ASC&ordenarPor=nome"
import requests
import json
params = {
"DataInicio" : "2023-01-01"
}
request = requests.get(url,params=params)
url
dados = request.json()
dados
dados["dados"][2]['id'] # Testando o acesso às informações
len(dados["dados"]) # Total de deputados escontrados
Eu não diria que está correto, pois existem 513 deputados e foram retornados 555 linhas
Fazendo uma pequena auditoria nesses números:
def ret(parametro,alvo): # Função que retorna a quantidade de deputados
quant = 0
for i in range (len(dados["dados"])):
for _ in range (len(alvo)):
if dados["dados"][i][parametro] == alvo:
quant += 1
return quant
estados = [] # Cria lista com todos as siglas estaduais
for i in range (len(dados["dados"])):
if dados["dados"][i]["siglaUf"] not in estados:
estados.append(dados["dados"][i]["siglaUf"])
lista_estados = []
for i in range (27):
lista_estados.append(estados[i])
lista_estados
qnt_por_estado = [] # cria uma lista com os totais de cada estado
for i in range(len(estados)):
qnt_por_estado.append(int(ret("siglaUf",estados[i])/2))
quant = []
for i in range (27):
quant.append(qnt_por_estado[i])
qnt = 0
for i in range (27):
qnt += qnt_por_estado[i]
qnt
dic = {} # cria um dicionario relacionando os totais de deputados por estado
for i in range(len(estados)):
dic[estados[i]] = qnt_por_estado[i]
dic
O resultado dos deputados é 555, seriam 513, porém estão inclusos os suplentes em exercício junto com com os deputados eleitos que tiraram alguma licença
x = qnt_por_estado
lista = []
for _ in range(11):
lista.append(max(x))
x.remove(max(x))
lista
quant
lista
l = []
for i in range(10):
for t in range(27):
if lista[i] == quant[t]:
l.append(t)
l
lt = []
for a in l:
if a not in lt:
lt.append(a)
lt
v = []
for i in lt:
v.append(estados[i])
for _ in range(2):
v.pop()
v ## LISTA DOS 10 ESTADOS COM MAIS DEPUTADOS:
part = []
for i in range (len(dados["dados"])):
part.append(dados["dados"][i]["siglaPartido"])
part
len(part)
par = []
for i in part:
if i not in par:
par.append(i)
par
len(par) ## TOTAL DE PARTIDOS
par[0]
qnt = 0
ls = []
for t in range (len(par)): # lista com os 21
for i in range(len(part)): # lista com os 555
if par[t] == part[i]:
qnt += 1
ls.append(qnt)
qnt = 0
ls
ls
lsp = []
for i in range(len(ls)):
lsp.append(ls[i])
lsp
f = []
for _ in range (5):
f.append(max(lsp))
lsp.remove(max(lsp))
f
posicoes = []
for i in range (5):
for t in range (len(ls)):
if ls[t] == f[i]:
posicoes.append(t)
posicoes=posicoes.sort()
posicoes
a = []
for i in range (5):
a.append(par[posicoes[i]])
a ## LISTA DOS CINCO PARTIDOS COM MAIS DEPUTADOS