Mundo em Python

Obter dados sismos (dados obtidos através do IPMA )


import requests

import json

def obter_dados_sismicos(id_area):


    try:

        # Fazendo a requisição à API

        resposta = requests.get(url)

        resposta.raise_for_status()  # Verifica se houve algum erro na requisição

        # Decodificando o JSON recebido

        dados = resposta.json()

        # Exibindo os dados formatados

        print(json.dumps(dados, indent=4, ensure_ascii=False))

        # Processando e retornando os dados

        return dados

    except requests.exceptions.RequestException as e:

        print(f"Erro ao obter dados: {e}")

        return None

def processar_dados_sismicos(dados):

    if not dados or 'data' not in dados:

        print("Nenhum dado sísmico disponível.")

        return

    for evento in dados['data']:

        time = evento.get("time", "N/A")

        local = evento.get("local", "N/A")

        lat = evento.get("lat", "N/A")

        lon = evento.get("lon", "N/A")

        magnitude = evento.get("magnitud", "N/A")

        profundidade = evento.get("depth", "N/A")

        regiao = evento.get("obsRegion", "N/A")

        print(f"Data e Hora: {time}")

        print(f"Local: {local}")

        print(f"Região de Observação: {regiao}")

        print(f"Latitude: {lat}")

        print(f"Longitude: {lon}")

        print(f"Magnitude: {magnitude}")

        print(f"Profundidade: {profundidade} km")

        print("-" * 40)

# Loop até que o usuário insira uma área válida (3 ou 7)

while True:

    try:

        id_area = int(input("Digite a área de interesse: [3] para Açores e [7] para Continente e Madeira: "))

        if id_area in [3, 7]:

            break

        else:

            print("Entrada inválida. Por favor, insira 3 para Açores ou 7 para Continente e Madeira.")

    except ValueError:

        print("Entrada inválida. Por favor, insira um número inteiro válido.")

# Obtendo os dados sísmicos

dados_sismicos = obter_dados_sismicos(id_area)

# Processando os dados obtidos

if dados_sismicos:

    processar_dados_sismicos(dados_sismicos)

0