雅虎金融的DateTime从字符串中解析。

问题描述 投票:0回答:1

我很抱歉打扰你,但我是Python3的新手。

我试图解析HTML表格,以获得一个股票和日期的列表,然后我想从yahoo中输入股票价格。

我有一个单元格,其中有一个文本,然后是一个日期,格式如下。4月20日,2020年... 我想只提取日期,这样我就可以在雅虎API中使用它,但我得到的错误与以下代码。

date=result.find("td", attrs {'class':'column5'}).text.replace('\n',' ')
date=datetime.datetime.strptime(date,'%B %d, %Y').strftime('%Y-%m-%d')

非常感谢任何指导!

python-3.x datetime yahoo-finance
1个回答
0
投票

我的评论的一个例子,使用 regex 来查找所有符合日期时间格式的子串。'%B %d, %Y'然后根据需要转换格式。

import re
from datetime import datetime

s = "April 20, 2020 April 3, 2020 March 18, 2020 February 29, 2020 March 29, 2019 March 19, 2019 1) September 20, 2018 - IPO ~20% 2) March 8, 2019 - exchange offer complete March 4, 2019 1) October 11, 2018 - IPO ~15% 2) March 1, 2019 - spinoff remaining stake February 25, 2019"

dates = re.findall('[a-zA-Z]+\ [0-9]{1,2},\ [0-9]{4}', s)
# ['April 20, 2020',
#  'April 3, 2020',
#  'March 18, 2020',
#  'February 29, 2020',
#  'March 29, 2019',
#  'March 19, 2019',
#  'September 20, 2018',
#  'March 8, 2019',
#  'March 4, 2019',
#  'October 11, 2018',
#  'March 1, 2019',
#  'February 25, 2019']

for d in dates:
    print(datetime.strptime(d,'%B %d, %Y').strftime('%Y-%m-%d'))
# 2020-04-20
# 2020-04-03
# 2020-03-18
# 2020-02-29
# 2019-03-29
# 2019-03-19
# 2018-09-20
# 2019-03-08
# 2019-03-04
# 2018-10-11
# 2019-03-01
# 2019-02-25
© www.soinside.com 2019 - 2024. All rights reserved.