【发布时间】:2018-02-04 01:01:20
【问题描述】:
实际上我正在做一个小项目,需要解析公共可用的 XML 数据。我的目标是将数据写入 mysql 数据库以进行进一步处理。
XML 结构(示例):
<parkingAreaStatus>
<parkingAreaOccupancy>0.2533602</parkingAreaOccupancy>
<parkingAreaOccupancyTrend>stable</parkingAreaOccupancyTrend>
<parkingAreaReference targetClass="ParkingArea" id="2[Zeil]"
version="1.0"/>
<parkingAreaStatusTime>2018-02-
04T01:30:00.000+01:00</parkingAreaStatusTime
</parkingAreaStatus>
<parkingAreaStatus>
<parkingAreaOccupancy>0.34625</parkingAreaOccupancy>
<parkingAreaOccupancyTrend>stable</parkingAreaOccupancyTrend>
<parkingAreaReference targetClass="ParkingArea" id="5[Dom / Römer]"
version="1.0"/>
</parkingAreaStatus>
使用代码
import csv
import pymysql
import urllib.request
url = "http://offenedaten.frankfurt.de/dataset/912fe0ab-8976-4837-b591-57dbf163d6e5/resource/48378186-5732-41f3-9823-9d1938f2695e/download/parkdatendyn.xml"
from lxml.objectify import parse
from lxml import etree
from urllib.request import urlopen
locations_root = parse(urlopen(url)).getroot()
locations = list(locations_root.payloadPublication.genericPublicationExtension.parkingFacilityTableStatusPublication.parkingAreaStatus.parkingAreaReference)
print(*locations)
我希望获得 XML 文档中所有“parkingAreaReference”条目的列表。不幸的是,列表是空的。
用一些代码玩弄我得到了只有第一个块被解析的情绪,我能够通过使用“parkingAreaReference”id="2[Zeil]" 块的“parkingAreaOccupancy”值填充列表代码
locations = list(locations_root.payloadPublication.genericPublicationExtension.parkingFacilityTableStatusPublication.parkingAreaStatus.parkingAreaOccupancy)
print(*locations)
-> 0.2533602
这不是预期的结果
-> 0.2533602 -> 0.34625
我的问题是:
什么是获得矩阵的最佳方法,我可以进一步使用所有块,包括。 XML 文档中规定的相应值?
示例输出:
A = [[ID:2[Zeil],0.2533602,stable,2018-02-
04T01:30:00.000+01:00],[id="5[Dom / Römer],0.34625,stable,2018-02-
04T01:30:00.000+01:00]]
一般来说
A = [parkingAreaOccupancy,parkingAreaOccupancyTrend,parkingAreaStatusTime,....],[parkingAreaOccupancy,parkingAreaOccupancyTrend,parkingAreaStatusTime,.....]
经过数小时的研究,我希望从您的网站获得一些提示
提前谢谢你,
TR
【问题讨论】: