Dify 获取天气数据并以echarts图表显示
- 1. 创建一个 Chatflow
- 2. 创建一个 HTTP 请求节点
- 3. 创建一个代码执行节点
- 4. 创建一个直接回复节点
- 5. 发布并预览
1. 创建一个 Chatflow
2. 创建一个 HTTP 请求节点
请求地址:https://weather.cma.cn/api/climate?stationid=58367
3. 创建一个代码执行节点
代码如下,
import jsondef main(data):weather_data = json.loads(data)# 提取月份和对应的数据months = []max_temps = []min_temps = []rainfall = []for item in weather_data['data']['data']:months.append(f"{item['month']}月")max_temps.append(item['maxTemp'])min_temps.append(item['minTemp'])rainfall.append(item['rainfall'])# 生成echarts配置echarts_config = {"color": ['#eb6877', '#0f91c4', '#46cbd4'],"title": {"subtext": f"{weather_data['data']['beginYear']}年-{weather_data['data']['endYear']}年月平均气温和降水","left": 20},"tooltip": {"trigger": "axis","axisPointer": {"type": "cross"}},"legend": {"data": ["最高气温", "最低气温", "降水"],"right": 20},"xAxis": {"data": months,"axisLine": {"onZero": False}},"yAxis": [{"type": "value","name": "温度","position": "left","axisLabel": {"formatter": "{value} ℃"}},{"type": "value","name": "降水量","min": 0,"position": "right","axisLabel": {"formatter": "{value} mm"}}],"series": [{"name": "最高气温","type": "line","data": max_temps,"yAxisIndex": 0,"itemStyle": {"color": "#eae213"}},{"name": "最低气温","type": "line","smooth": True,"data": min_temps,"yAxisIndex": 0,"itemStyle": {"color": "#4bb2fa"}},{"name": "降水","type": "bar","smooth": True,"data": rainfall,"yAxisIndex": 1,"itemStyle": {"color": "#31e84f"}}]}# 生成输出文件output = "```echarts\n" + json.dumps(echarts_config, indent=2, ensure_ascii=False) + "\n```"return {"output":output}
4. 创建一个直接回复节点
5. 发布并预览
完结!