Olá, pessoal! Estou fazendo alguns teste para processar o resultado da API de localização de ônibus da prefeitura do Rio, que entrega o seguinte JSON:
{
"COLUMNS": ["DATAHORA", "ORDEM", "LINHA", "LATITUDE", "LONGITUDE", "VELOCIDADE"],
"DATA": [
["02-17-2020 21:23:28", "A50084", 301.0, -22.92901, -43.25412, 0.0],
["02-17-2020 21:23:49", "A50017", 301.0, -22.96014, -43.39546, 0.0],
["02-17-2020 21:25:17", "A50009", 301.0, -22.92908, -43.25431, 0.0],
["02-17-2020 21:26:34", "C50014", 301.0, -22.92968, -43.25362, 1.0],
["02-17-2020 21:33:41", "A50005", 301.0, -22.92874, -43.25413, 0.0],
["02-17-2020 21:40:27", "A50079", 301.0, -22.92889, -43.2542, 0.0],
["02-17-2020 21:42:45", "A50141", 301.0, -22.98372, -43.29715, 38.0],
["02-17-2020 21:43:28", "C50152", 301.0, -22.92917, -43.25398, 0.0],
["02-17-2020 21:43:31", "A50143", 301.0, -22.95943, -43.38751, 0.0],
["02-17-2020 21:43:31", "C50035", 301.0, -22.90246, -43.20823, 19.0],
["02-17-2020 21:43:33", "A50026", 301.0, -22.92384, -43.22805, 8.0],
["02-17-2020 21:43:34", "C50053", 301.0, -22.92358, -43.25028, 34.0],
["02-17-2020 21:43:39", "C50059", 301.0, -22.95094, -43.26192, 17.0],
["02-17-2020 21:43:39", "C50171", 301.0, -22.95946, -43.38684, 0.0],
["02-17-2020 21:43:41", "A50080", 301.0, -22.92922, -43.25387, 0.0],
["02-17-2020 21:43:43", "C50149", 301.0, -22.91186, -43.23402, 44.0],
["02-17-2020 21:43:45", "C50108", 301.0, -22.95953, -43.38648, 0.0],
["02-17-2020 21:43:49", "C50092", 301.0, -22.92919, -43.25384, 0.0],
["02-17-2020 21:43:50", "A50222", 301.0, -22.92934, -43.25355, 0.0],
["02-17-2020 21:43:50", "C50039", 301.0, -22.9325, -43.24065, 3.0],
["02-17-2020 21:43:50", "C50147", 301.0, -22.90901, -43.22317, 39.0],
["02-17-2020 21:43:50", "C50170", 301.0, -22.96453, -43.27688, 0.0],
["02-17-2020 21:43:51", "A50075", 301.0, -22.90187, -43.20817, 7.0],
["02-17-2020 21:43:54", "A50221", 301.0, -22.90716, -43.21367, 38.0],
["02-17-2020 21:43:57", "C50061", 301.0, -22.96004, -43.39588, 0.0]
]
}
Nessa saída temos um Dicionário que contém COLUMNS e DATA, a informação relevante está em uma lista, dentro de DATA, para isso eu fiz o seguinte código:
r = requests.get(url_prefeitura)
dados = r.json()
entradas = dados['DATA']
for i in entradas:
campo=i[0:1]
até ai blz, consegui pegar o campo de data em hora, porém dentro de uma OUTRA lista. Assim, para conseguir pegar cada um dos campos em string ou float, eu precisei fazer o seguinte mecanismo:
r = requests.get(url_prefeitura)
dados = r.json()
entradas = dados['DATA']
for i in entradas:
campo=i[0:1]
for item in campo:
data_hora = item
campo=i[1:2]
for item in campo:
ordem = item
campo=i[2:3]
for item in campo:
linha = item
campo=i[3:4]
for item in campo:
latitude = item
campo=i[4:5]
for item in campo:
longitude = item
campo=i[5:6]
for item in campo:
velocidade = item
Com isso o resultado final foi satisfatório.
A minha pergunta é: vocês enxergam alguma forma mais otimizada de fazer esse processo?
Obrigado!