之前我的一篇文章:
https://blog..net/zhangphil/article/details/88538112
是把从服务器接口读取到的json天气预报数据画制成折线图。现在把从json中的天气预报数据自动写入到Excel表格中。
需要安装Python处理excel表格的库:
pip install openpyxl
程序代码:
import openpyxl
import json
import urllib.request
def get_weather_json_data(city_code):
url = "http://t./api/weather/city/"+city_code
response = urllib.request.urlopen(url)
content = response.read().decode('utf-8')
return content
def get_forecast_data(content):
data = content["data"]
return data["forecast"]
#清洗数据。过滤℃
def get_pure_temperature(temp):
a, b = temp.split()
return b.strip().strip("℃")
#数据写入到Excel。
def write_data_to_excel(date_time, high, low):
wb = openpyxl.load_workbook('test.xlsx')
sheet = wb.get_sheet_by_name(wb.sheetnames[0])
for i in range(1, len(date_time)):
for k in range(1, 4):
c = sheet.cell(column=k, row=i)
if k == 1:
c.value = date_time[i]
if k == 2:
c.value = high[i]
if k == 3:
c.value = low[i]
wb.save('test.xlsx')
#101270101,天气预报中成都的代码。
city_code = '101270101'
content = json.loads(get_weather_json_data(city_code))
data = get_forecast_data(content)
high, low, date_time = [], [], []
for obj in data:
h = obj["high"]
high.append(get_pure_temperature(h))
l = obj["low"]
low.append(get_pure_temperature(l))
date_time.append(obj["ymd"])
write_data_to_excel(date_time, high, low)
运行结果如下所示: