如果我的字符串仅包含一个日期,我将使用以下代码:
datetime.datetime.strptime(string, '%b %d %Y').strftime('%Y-%m-%d')
但是由于字符串中有很多,所以我不知道如何进行。我如何才能读取字符串并仅在需要的地方进行更改?
这是我的字符串:
s = 'Mar 27 2000*56.75*58.39*Mar 26 2000*53.10*56.13*Mar 25 2000*51.50*52.00'
以及之后的期望:
s = '2000-03-27*56.75*58.39*2000-03-26*53.10*56.13*2000-03-25*51.50*52.00'
答案 0 :(得分:0)
您可以做
new_s = s.split("*")
然后在日期时间格式的列上使用您的代码。
答案 1 :(得分:0)
如果所有字符串日期都采用相同的格式,则可以使用正则表达式获取字符串中的日期,然后将其替换,我在想这样的事情:
import re
import datetime
def operate_on_replacement(matchObj):
match = matchObj.group(0)
return datetime.datetime.strptime(match, '%b %d %Y').strftime('%Y-%m-%d')
start_string = 'Mar 27 2000*56.75*58.39*Mar 26 2000*53.10*56.13*Mar 25 2000*51.50*52.00'
replaced_string = re.sub(r'\w{3}\s{1}\d{2}\s{1}\d{4}', operate_on_replacement, start_string)