[英]Parsing XML using LXML and Python
我已经阅读了有关堆栈溢出的其他问题,但仍不确定如何继续。 为了简化阅读,我简化了XML文档。
<event>
<time>2015-01-30T08:59:00Z</time>
<homeTeam type="Team1">
<name>United Arab Emirates</name>
</homeTeam>
<awayTeam type="Team2">
<name>Iraq</name>
</awayTeam>
<periods>
<period lineId="168809488">
<number>0</number>
<description>Match</description>
<cutoffDateTime>2015-01-30T08:59:00Z</cutoffDateTime>
<moneyLine>
<awayPrice>218</awayPrice>
<homePrice>148</homePrice>
<drawPrice>225</drawPrice>
</moneyLine>
</period>
</periods>
</event>
XML文件中有几个“事件”元素。 我可以使用tree.getiterator('event')
隔离每个人
for elt in tree.getiterator('event'):
print elt.xpath('./homeTeam/name/text()')
print elt.xpath('//startDateTime/text()')
但是,这将产生两个列表。 为了存储到Mysql DB中,我需要每次都将主队名称,客队名称,客队价格,主场价格和平局价格隔离开。
我不确定如何在整个事件中进行迭代,而不用其他列表结尾。 其中一个包含所有时间,一个包含所有主队名称等
任何建议或指示,将不胜感激
当您寻找不同的东西时,您将得到不同的列表,但这应该没问题。 这里的目标不是立即从lxml
接口中获取结果,而是稍后获取可以放入mysql
数据库的内容,对吗?
如果是这样,只需将zip
调用添加到插入过程中就可以了。 例如:
home_teams = elt.xpath('./homeTeam/name/text()')
away_teams = # something
away_prices = # something
full_iterator = zip(home_teams, away_teams, away_prices, etc...)
for values in full_iterator:
# For example
mysql.insert(*values)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.