我需要解析这个XML Document,并将日期和时间移到%Y-%m-%d %H:%M:%S
格式中,并将变量hourly-qpf
和{
我所做的就是使用以下代码读入XML文件:
page = urllib2.urlopen('http://forecast.weather.gov/MapClick.php?lat=47.6062&lon=-122.3321&FcstType=digitalDWML')
page_content = page.read()
with open('KBFI.xml', 'w') as fid:
fid.write(page_content)
在这之后我不知所措。我以前只分析过一个XML文档,它看起来与此完全不同。在
编辑
很抱歉之前没有给你们任何东西,但我不知道该用什么模块,因为我只有minidom的经验,它似乎不是正确的选择。我一直在搞元素树,我想出了这个:
^{pr2}$但是,有一个问题,因为变量是连字符的,我不知道如何将它们改为下划线或删除它们。而且,正因为如此,我不知道我的代码是否有用!在
我建议使用xmltoict来解析和提取XML中的数据,因为它可以将XML转换为Python dict,并使用与XML源相同的嵌套方式,因此它简单易用。对于那些熟悉Python语法的人来说,使用Python语法是很自然的,Python dict是完全通用的,这意味着它们能够表达异构和嵌套的数据结构。例如,Pickling Tools Library依赖于Python DIts,用于Python、C++和java数据互操作性,并提供将XML转换为DIX的工具。XMLtoDIT的优点在于它的小型、快速和独立的模块,只需将XML转换为DI.T/P>
作为xmltodict用法的一个示例,下面的脚本下载this XML document,并提取其创建日期以及降水概率和每小时qpf值的列表:
以下是运行此脚本的输出(在20150730上):
^{pr2}$xmltodict可以与“pip install xmltoict”一起安装。它是由martinblech开发的,它的GitHub项目位于https://github.com/martinblech/xmltodict。在
为了访问起始有效时间和结束有效时间,了解它们的数据结构以及它们的位置是很有帮助的。由于这两个值都是包含在相同标签中的一系列值,直观地说,每个系列都应作为键的值形成一个单独的列表,其名称类似于降水概率和每小时qpf。这可以通过打印整个结果dict和检查其中的开始有效时间和结束有效时间的格式来确认,并且可以通过漂亮地打印结果dict(使用import pprint然后运行)来实现pprint.pprint(结果)。对于this XML document,漂亮地打印它的等价dict将生成2000多行,但是start valid time从第26行开始,其值显然是一个列表:
^{3}$下面是一个脚本,它将创建日期提取并打印为标量值、列表中的所有开始有效时间值、列表中的所有结束有效时间值、列表中的所有降水概率值以及列表中的所有小时qpf值,并打印每个提取列表的长度:
以下是运行此脚本的输出(在20150731上):
可以使用python xml库:
https://docs.python.org/2/library/xml.etree.elementtree.html
相关问题 更多 >
编程相关推荐