微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从python中的xml标签中检索日期?

如何解决如何从python中的xml标签中检索日期?

我正在解析一个我对特定日期感兴趣的大型 XML 文件。此时,我可以将搜索范围缩小到一个小列表,如下所示:

date_list = [<day>15</day>,<month>10</month>,<year>2020</year>]

我需要的是一个格式如下的日期:

15-10-2020

我该怎么做?谢谢!

考虑按原样使用 XML 标记。我用了漂亮的汤。

解决方法

date_list = ['<day>15</day>','<month>10</month>','<year>2020</year>']

new_date = []

for elem in date_list:
    new_date.append(elem.split(">")[1].split("<")[0])

new_date = "-".join(new_date)

print (new_date)

输出:

15-10-2020
,

如果标签的顺序不一致,您可以使用 ElementTree 来解析标签和文本内容

from xml.etree import ElementTree as ET
date_list = ['<day>15</day>','<year>2020</year>']
# create an empty dict
a_date_dict = {}
for date_tag in date_list:
    # parse the string to an ElementTree
    el = ET.fromstring(date_tag)
    # extract data
    a_date_dict[el.tag] = int(el.text)
# at this stage you can output the string
print('{day}-{month}-{year}'.format(**a_date_dict))
# or create a date object
from datetime import date
a_date = date(**a_date_dict)

# Or if you like oneliners and use python 3.8
a_date = date(**{(b:=ET.fromstring(a)).tag:int(b.text) for a in date_list})

如果 date_list 中的项目是来自 Beautiful Soup 库的 Tag 对象,那么您应该能够使用 contents 属性

print('{}-{}-{}'.format(*[a.contents[0] for a in date_list]))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。