欢迎来到第一文库网! | 帮助中心 第一文库网-每个人都是第一
第一文库网
全部分类
  • 研究报告>
  • 学术论文>
  • 全科教育>
  • 应用文档>
  • 行业资料>
  • 企业管理>
  • 技术资料>
  • 生活休闲>
  • ImageVerifierCode 换一换
    首页 第一文库网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于Dragonbaord 410c开发板的Python交互设计(3)——天气预报xml数据解析.docx

    • 资源ID:877942       资源大小:28.28KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Dragonbaord 410c开发板的Python交互设计(3)——天气预报xml数据解析.docx

    基于Dragonbaord410c开发板的Python交互设计(3)天气预报xm1数据解析前面己经给大家介绍了在设计天气预报demo中如何设计界面和从网络天气API接口中获取天气数据,但是实际应用中我们可能只需要非常少的一部分天气数据,并且能够见这部分数据提取出来进行单独的显示或者应用,如在你的以Y中你可能只需要在界面中显示一些指数提示,或者只需要简单的天气状态等,这时候我们就需要对获取的数据进行解析了,今天这篇b1og中将进一步教大家如何对获取到的XM1格式的天气数据进行解析。下图是天气XM1数据格式,其实XM1的语法非常简单,主要由标签和内容组成,标签是由起始标签和结尾标签组成,并且可以进行嵌套,这样在解析的过程中,我们通常可以通过判断是否是起始标签,然后读入数据即可,采用循环或者递归的方法都可以完成对XmI的解析。目前对于XM1的解析,已经有很多组件接口可以直接调用,而不需要我们再去从最底层的字符匹配,标签匹配等去编程了,我们只需要掌握这些接口的调用即可,在pyqt中也提供了QtXm1类来用于解析XM1文件,这里提供了多种xm1文件解析方法,我们将用其提供的QXm1StreamReader方法来实现对XM1的处理,这是一种基于流的解析方法,通常比较适合不需要反复的读取数据的场合,在该方法中提供的AP1接口主要有以下几个常用的,当然还有许多其他的AP1接口,大家可以参考QT官方文档。readNext():从Xm1输入流中读取下一个记号name():记号的名称,即名称isStartE1ementO:判断当前已读取的记号是否为开始元素,开始元素即isEndE1ementO:判断当前已读取的记号是否为结束元素,结束元素即/readE1ementText():读取当前记号对应的文本值,文本值/atEndO:判断是否为文件结尾了解了这些我们就可以调用这些接口来获取标签名和判断是否是起始标签,并且可以放的读取标签文本信息。上一篇b1og中,我们用Weather1nfO=bytes,decode(pbyte)语句获取了天气信息并进行了打印,这里其实我们Weather1nfO实一个字符数组,我们可以直接调用WeatherXmI=QtCore.QXm1StreamReader(weatherInfo)函数就可以读入到XM1流中,这样就可以通过WeatherXM1对象来实现对XM1流的相关操作,这里我们写了一个解析从新浪获取的天气数据的Python类来实现对天气数据的解析,其中代码如下:fromPyQt5importQtWidgets,QtCore,QtXm1,QtGui,QtNetworkfrommainwindowimportUi_MainWindow#fromQtGuiimportQPixmapimportresimporttimec1assgetWeather1nfo(object):def_init_(se1f,weatherXm1):se1f.weather_updateOK=Ose1f,weathercity=,z,se1f.weather_wendu=”se1f.WeahteJUPdatetinIe二se1f.Weathejsuggest="”se1f,weatherfeng1i=z,z,se1f.WeatheJfengXiang二se1f.Weathejsunrise="”se1f.WeatheJSUnSet="”se1f,forecastweather_info_date=se1f,forecast_weather_info_high=se1f.forecast_weather_info_1ow=se1f,forecastweatherinfodtype=se1f.forecast_weather_info_dfengxiang-se1f.forecast_weather_info_dfeng1i=se1f.forecast_weather_info_ntrpe=口se1f.forecast_weather_info_nfengxiang=se1f,forecastweather_infonfeng1i=#指数se1f.weather_zhishu_name=se1f.Weatherzhishuya1e=se1f.weather_zhishu_data=se1f.PrassWeatherInfo(weatherXm1)defPrassWeatherInfo(se1f,weatherXm1):print(z,startPraSSweather1nfo")whi1enotWeatherXm1atEnd():ifweatherXm1.hasError():print(zzerror:getweatherdataerrorz,)return-1e1ifweatherXm1.IsStartE1ement():ifweatherXm1.name()=zzcityz,:se1f,weathercity=weatherXm1.readE1ementText()#Print(city)weatherXm1.readNext()e1ifweatherXm1.name()z,updatetimez,:se1f.weahter_updatetime=weatherXm1readE1ementText()e1ifWeatherXm1.name()",wenduz,:se1f.weather_wendu=weatherXm1.readE1ementTextOweatherXm1.readNext()e1ifweatherXm1.name()="feng1i”:se1f.weather_feng1i=weatherXm1.readE1ementTextOweatherXm1.readNext()e1ifweatherXm1.name()="shidu”:se1f.weather_shidu=weatherXm1.readE1ementTextOweatherXm1.readNext()e1ifweatherXm1.name()-z,fengxiangz,:se1f.weather_fengxiang=weatherXm1.readEIementText()weatherXm1.readNext()e1ifweatherXm1.name()="sunrise_1:se1f,weathersunrise=weatherXm1.readE1ee1ifWeatherXm1.name()="sunset_1:se1f.Weathersunset=WeatherXm1.readE1ementText()WeatherXm1readNext()e1ifWeatherXm1.name()=z*environment?/:print(z,environment,z)whi1enotweatherXm1.atEnd():ifweatherXm1.nameO-,zsuggest*:se1f.weather_suggest=weatherXm1.FeadE1ementText()print("suggest")breake1se:weatherXm1.readNext()e1ifweatherXm1.name()=z*forecastzz:rint(weatherXm1.readE1ementText()print("forecast")weatherXm1.readNext()whi1enotweatherXm1.atEnd():ifweatherXm1.iSStartE1ementO:ifWeatherXm1.atEnd():whi1enotweatherXm1.iSStartE1ementO:ifWeatherXm1name()=,datez,:ifint(,weatherinfozz)#pre二weatherXm1.TeadE1ementText()datf.forecastweatherinfodate,append(date)seitherXm1.readNextOweaint(date)#PrweatherXm1.name()="high”:e1ifh=WeatherXm1.KeadE1ementText()higf.forecastweatherinfohigh,append(high)seitherXm1.readNextOweaint(high)#Pre1ifWeatherXm1.name()="1ow":1ow=WeatherXm1.FeadE1ementText()seif.forecast_weather_info_1ow.append(1ow)weatherXm1.readNext()#Print(1ow)e1ifWeatherXm1name()=day:#Print(z,dayinfo")weatherXm1.readNext()whiIenotweatherXm1.atEnd():ifWeatherXm1iSStartE1ementO:ifweatherXm1.name()="type:type=weatherXm1.KeadE1ementTextOse1f.forecast_weather_info_dtype.append(type)weatherXm1.readNext()#Print("type:)rint(type)e1ifWeatherXm1name()=zzfengxiangzz:ffengxiang=weatherXm1.KeadE1ementText()se1f,forecastweather_info_dfengxiang.append(ffengxiang)WeatherXm1.readNext()Sprint(ffengxiang)e1ifWeatherXm1name()=zfeng1iz:ffeng1i=WeatherXm1.FeadE1ementText()se1f,forecastweatherinfodfeng1i.append(ffeng1i)weatherXm1.readNext()#Print(ffeng1i)e1se:weatherXm1.readNext()ftbreake1se:WeatherXm1.readNext()breake1ifweatherXm1.name()=night:#Print(,nightinfo:,z)weatherXm1.readNext()whiIenotweatherXm1.atEnd():ifweatherXm1.IsStartE1ement():ifweatherXm1.nameO",ztype,z:ntype=weatherXm1.FeadE1ementText()se1f.forecast_weather_info_ntype.append(ntype)weatherXm1.readNext()

    注意事项

    本文(基于Dragonbaord 410c开发板的Python交互设计(3)——天气预报xml数据解析.docx)为本站会员(lao****ou)主动上传,第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第一文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 001doc.com网站版权所有   

    经营许可证编号:宁ICP备2022001085号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



    收起
    展开