# 读取本地JSON文件并生成折线图的Python实现


背景介绍

本脚本用于从本地配置文件中读取天气数据并生成折线图。该脚本需要以下步骤:

  1. 读取本地名为weather.json的JSON文件,包含城市和温度字段;
  2. 使用matplotlib生成折线图展示当前城市温度;
  3. 输出可视化结果。

思路分析

数据解析

  • 使用json模块读取JSON文件,确保文件路径正确;
  • 提取关键字段citytemperature
  • 如果文件内容未包含这些字段,需要处理异常(如文件不存在或无效JSON)。

折线图绘制

  • 使用matplotlib的plot函数绘制折线图;
  • 根据温度数据生成图表,显示城市名称;
  • 输出结果信息时,使用print语句或图表展示。

可运行性

  • 添加try-except块确保文件读取时异常处理;
  • 输出结果信息时打印简洁文本,避免冗余。

代码实现

import json
import matplotlib.pyplot as plt

def read_weather_data(file_path):
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            data = json.load(f)
        print(f"读取成功,当前城市为 {data['city']}, 温度为 {data['temperature']}°C")
        return data
    except FileNotFoundError:
        print("文件未找到,请检查路径是否正确。")
    except json.JSONDecodeError:
        print("JSON格式异常,请确认文件内容是否正确。")
        return None

def generate_chart(data):
    if not data:
        print("无有效数据,请检查输入文件是否正确。")
        return

    temperature = data['temperature']
    city = data['city']

    plt.figure(figsize=(10, 6))
    plt.plot(range(10), [temperature * 0.01, temperature * 0.01], 'b-', label='温度')
    plt.title(f"{city}当前温度 {temperature}°C")
    plt.xlabel("时间")
    plt.ylabel("温度(°C)")
    plt.grid(True)
    plt.legend()

    plt.show()

if __name__ == '__main__':
    file_path = 'weather.json'
    weather_data = read_weather_data(file_path)

    if weather_data:
        generate_chart(weather_data)
    else:
        print("无有效数据,请检查输入文件是否正确。")

总结

本脚本实现了从本地JSON文件读取天气数据并生成折线图的功能。通过JSON解析和matplotlib绘制,实现了数据可视化,确保了程序的可运行性和健壮性。代码中处理了常见错误情况,确保了系统的稳定性与准确性。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注