背景介绍
本脚本用于从本地配置文件中读取天气数据并生成折线图。该脚本需要以下步骤:
- 读取本地名为
weather.json的JSON文件,包含城市和温度字段; - 使用matplotlib生成折线图展示当前城市温度;
- 输出可视化结果。
思路分析
数据解析
- 使用json模块读取JSON文件,确保文件路径正确;
- 提取关键字段
city和temperature; - 如果文件内容未包含这些字段,需要处理异常(如文件不存在或无效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绘制,实现了数据可视化,确保了程序的可运行性和健壮性。代码中处理了常见错误情况,确保了系统的稳定性与准确性。