forked from Py013/codo_dojo3
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
66 lines (44 loc) · 1.59 KB
/
main.py
File metadata and controls
66 lines (44 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import requests
# o retorno do json precisa pegar "current_condition" e depois "temp_C"
BASE_URL = "https://wttr.in/{}?format=j1"
def get_temperature_api(cidade: str):
r = requests.get(BASE_URL.format(cidade))
r.raise_for_status()
res = r.json()
current_condition = res["current_condition"][0]
temp_c = current_condition.get("temp_C")
print(temp_c)
return temp_c
def load_csv():
with open('cidades.csv') as cidades:
return cidades.readlines()
def generate_csv(dados_cidade: dict):
# gerar csv das cidades
with open("csvnew.csv", "w") as new:
new.write('cidade,pais,temperatura_c\n')
cidades_nome = dados_cidade.keys()
print(cidades_nome)
for k, v in dados_cidade.items():
nova_linha = k + ',' + v + '\n'
# nova_linha += "," + dados_cidade[v]
new.write(nova_linha)
return
if __name__ == "__main__":
cidades = load_csv()
# Adicionar for loop para pegar todas as temperaturas
temperaturas = dict()
for index, linha in enumerate(cidades):
if index == 0:
continue
[cidade, pais] = linha.split(",")
pais = pais.strip()
print(f"Chamando API para cidade {cidade}")
try:
t = get_temperature_api(cidade)
except Exception as e:
print(f"Cidade {cidade} falhou. Erro: {e}")
continue
temperaturas[f"{cidade},{pais}"] = t
print(temperaturas)
generate_csv(temperaturas)
# temperatura = get_temperature_api("Santos")