如何解决如何从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 举报,一经查实,本站将立刻删除。