现在许多网站都能够供给气候数据服务,只需你的设备衔接网络,就能够便利的经过网络恳求拜访到气候数据,在dragonboard 410c开发板上现已供给了wifi衔接服务,能够便利的衔接到网络,因而,在dragonboard 410c上进行开发的进程中,咱们能够经过网络方法来获取气候数据,丰厚咱们的运用,现在,常用的有国家气象局和新浪的气候API接口,详细网址如下:
国家气象局气候接口地址:
http://www.weather.com.cn/data/sk/101010100.html
http://www.weather.com.cn/data/cityinfo/101010100.html
http://m.weather.com.cn/data/101010100.html
新浪气候接口地址:
http://www.weather.com.cn/data/sk/101010100.html
http://wthrcdn.etouch.cn/WeatherApi?city=深圳
这些接口咱们能够用浏览器翻开,就能够看到获取的气候信息,如下图所示,这儿咱们翻开的是最终一个新浪的接口,能够获取气候的XML文件,查询当时和前后几天的气候和环境指数。
可是咱们在开发进程中必定不能用浏览器来这样翻开咱们的气候接口了,更多的时分咱们需求经进程序去主动的获取和解析气候数据,今日就教咱们如安在dragonboard 410c平台下运用Python脚原本从新浪官方的API接口获取气候数据而且打印出来。
这儿咱们运用了pyqt供给的网络办理服务类QtNetwork模块中的QNetworkAccessManager和QNetworkRequest等类来完结网络编程,完结对气候API接口的拜访获取相关的数据服务,详细的代码如下:
from PyQt5 import QtWidgets, QtCore, QtXml, QtGui,QtNetwork
class weatherWindows(QtWidgets.QWidget):
def __init__(self):
super(weatherWindows,self).__init__()
self.img=QtGui.QImage()
self.manager = QtNetwork.QNetworkAccessManager()
self.weather_updateOK=0
self.Reply=self.manager.get(QtNetwork.QNetworkRequest(QtCore.QUrl(http://wthrcdn.etouch.cn/WeatherApi?city=%E6%B7%B1%E5%9C%B3)))
self.Reply.finished.connect(self.replayFinished)
def replayFinished(self):
global weather
print(weather replayFinished)
#status_code = self.Reply.attribute(QtNetwork.QNetworkRequest.HttpStatusCodeAttribute)
qbyte = self.Reply.readAll()
pbyte = bytes(qbyte.data())
str(pbyte, encoding = utf-8)
weatherInfo = bytes.decode(pbyte)
print(weatherInfo)self.weather_updateOK=0
if __name__==__main__:
import sys
app=QtWidgets.QApplicaTIon(sys.argv)
myshow=weatherWindows()
sys.exit(app.exec_())
以上便是整个获取气候数据和打印气候数据的代码,运转python脚本就能够获取气候数据而且打印出来,如下:
在上述代码中,其间心是经过
QtNetwork.QNetworkAccessManager()创立一个网络办理类。
然后使用该类取得的目标发送url恳求self.manager.get(QtNetwork.QNetworkRequest(QtCore.QUrl(“http://wthrcdn.etouch.cn/WeatherApi?city=%E6%B7%B1%E5%9C%B3”)))
完结之后咱们就只需将恳求完结后的信号与一个槽函数相关起来就能够了,在完结恳求获取数据后,体系就能够主动的调用槽函数来解析XML文件得到气候信息了,其间相关函数如下:
self.Reply.finished.connect(self.replayFinished)
replayFinished是槽函数,完结恳求后就会调用该函数处理。
以上便是整个气候预报demo的数据获取进程,可是咱们看到咱们现在仅仅获取了数据,可是通常在咱们的运用中咱们不需求显现悉数的数据,只需求解析部分数据出来,然后进行显现即可,这儿就需求对咱们获取的xml文件信息进行解析了,而不仅仅简略的打印出xml文件信息,后去blog中将进一步教咱们如何来解析气候XML文件数据,读取数据内容。