python制作属于自己的天气预报1

根据 ZackSock 兄弟的Python实现天气查询功能(外加Excel技巧) https://blog.csdn.net/ZackSock/article/details/102580920

这篇文章,我知道了这个天气预报接口http://t.weather.sojson.com/api/weather/city/

根据文章知道了101250101为长沙市,为学习Python。做了一个简单的接口查询

 

#
import re
from typing import List
from urllib.request import Request, urlopen
import gzip,zlib


#网站获取数据Api
url = 'http://t.weather.sojson.com/api/weather/city/101250101'
#包装头部
firefox_headers = {'User-Agent': "	Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0 " , "Accept-Encoding" :"gzip, deflate"}

#构建请求
request = Request( url, headers=firefox_headers )
html = urlopen( request )



#获取数据以utf-8的编码方式
#data2 = html.read().decode('utf-8')
data2 = zlib.decompress(html.read(), 16+zlib.MAX_WBITS).decode('utf-8')
data1=str(data2)
#data3 =dict(html.read().decode('utf-8'))
#data3 =dict (str(data2))

#将{}[]符号都转化为,
#data3=re.sub(r""[])
data3=data2.replace(r'}',',').replace(r'{',',').replace(r']',',').replace(r':',',')

#分割字符串
data4=data3.split(",")

#格式化获取数据偏移量i
i=0

data5: List[List[int]]=[[0 for k1 in range(0,7,1)] for k2 in range(0,20,1)]

#打印内容行数-测试用
#print(len(data3))

#print (data2)
#print (data1)
#print (data4)



#print('data2 行数:'+str(len(data2)))
#print('strs  行数:'+str(len(strs)))

#da=strs2

#打印内容-测试用

#print (data3[0][0])
#print (da[1])


print ()
#print (data2)
#print ('今日的日期是:'+data2[65:73])
#print ('现在时间是:'  +data2[83:102])
#print ('现在时间是:'+st[3])

print ()



'''
print (data4[1])
print (data4[2])
print (data4[3])
print (data4[5])
print ("当前日期是"+(data4[6]))
print (data4[6])
print (data4[7])
print (data4[111])
print (data4[112])
'''
'''
print ("当前日期是"+(data4[6]))
print ("时间"+(data4[8])+':'+data4[9]+':'+data4[10])
print ("天气更新时间"+(data4[20])+':'+data4[21])
print ("当前城市"+(data4[14]))

print ("今天天气预报"+'\n')
print ("湿度"+(data4[26]))
print ("pm25"+'  '+(data4[28]))
print ("pm10"+'  '+(data4[30]))
print ("空气质量"+(data4[32]))
print ("平均温度"+(data4[34]))
print ("感冒指数"+(data4[36]))
'''

'''
#今日天气
print ("今天天气"+'\n')
print ("今天日期是"+(data4[46+i]))
print ("今天最高温度"+'  '+(data4[42+i]))
print ("今天最低温度"+'  '+(data4[44+i]))
print ("今天日出时间"+'  '+(data4[50+i])+':'+data4[51+i])
print ("今天日落时间"+'  '+(data4[53+i])+':'+data4[54+i])
print (data4[62+i]+(data4[58+i])+data4[60+i])
print ((data4[64+i])+'\n\n\n\n\n')

data5=[][]
data5[j][0]=data4[46]
data5[j][1]='  '+data4[42]
data5[j][2]='  '+data4[44]
data5[j][3]='  '+(data4[50+i])+':'+data4[51+i])
data5[j][4]=(data4[53+i])+':'+data4[54+i])
data5[j][5]=data4[62+i]+(data4[58+i])+data4[60+i]
data5[j][6]=data4[64]
'''
'''导出所有data4数据,分析用
for j in range(0,len(data4),1):
    print("data4"+"["+str(j)+"]"+data4[j])
'''


'''
#今日天气
print ("今天天气"+'\n')
print ("今天日期是"+data5=[1][0])
print ("今天最高温度"+data5=[1][1])
print ("今天最低温度"+data5=[1][2])
print ("今天日出时间"+data5=[1][3])
print ("今天日落时间"+data5=[1][4])
print (data5[j][5])
print (data5[j][6])
'''
#print("一周内天气")
for j in range(0,6,1):
    data5[j][0]=data4[46+i]
    data5[j][1]='  '+data4[42+ i]
    data5[j][2]='  '+data4[44+ i]
    data5[j][3]='  '+(data4[50+i])+':'+(data4[51+i])
    data5[j][4]=(data4[53+i])+':'+(data4[54+i])
    data5[j][5]=data4[62+i]+(data4[58+i])+(data4[60+i])
    data5[j][6]=data4[64+ i]
    print ("日期是"+data5[j][0])
    print ("最高温度"+data5[j][1])
    print ("最低温度"+data5[j][2])
    print ("日出时间"+data5[j][3])
    print ("日落时间"+data5[j][4])
    print (data5[j][5])
    print (data5[j][6])
    i=i+28
for j in range(7,16,1):
    data5[j][0]=data4[46+i]
    data5[j][1]='  '+data4[42+ i]
    data5[j][2]='  '+data4[44+ i]
    data5[j][3]='  '+(data4[50+i])+':'+(data4[51+i])
    data5[j][4]=(data4[53+i])+':'+(data4[54+i])
    data5[j][5]=data4[60+i]+(data4[56+i])+(data4[58+i])
    data5[j][6]=data4[62+ i]
    print ("日期是"+data5[j][0])
    print ("最高温度"+data5[j][1])
    print ("最低温度"+data5[j][2])
    print ("日出时间"+data5[j][3])
    print ("日落时间"+data5[j][4])
    print (data5[j][5])
    print (data5[j][6])
    i=i+26
i=404
print("昨天天气")
data5[0][0] = data4[46 + i]
data5[0][1] = '  ' + data4[42 + i]
data5[0][2] = '  ' + data4[44 + i]
data5[0][3] = '  ' + (data4[50 + i]) + ':' + (data4[51 + i])
data5[0][4] = (data4[53 + i]) + ':' + (data4[54 + i])
data5[0][5] = data4[62 + i] + (data4[58 + i]) + data4[60 + i]
data5[0][6] = data4[64 + i]

print("日期是" + data5[0][0])
print("最高温度" + data5[0][1])
print("最低温度" + data5[0][2])
print("日出时间" + data5[0][3])
print("日落时间" + data5[0][4])
print(data5[0][5])
print(data5[0][6])



import os
os.system('pause')

后续将继续学习做界面,做可以互动的接口

你可能感兴趣的:(python,python,天气)