Python 检查列表中的日期,验证它,替换某些值并将其转换为日期对象
我有一个值列表,我想检查和验证日期值,将它们从字符串转换为日期对象。但有一个问题,一些日期类似于这种类型的字符串“预计在2018年5月” 我想将“预计在2018年5月”替换为“2018年5月1日”,然后转换为日期对象 以下是我的清单:Python 检查列表中的日期,验证它,替换某些值并将其转换为日期对象,python,python-3.x,Python,Python 3.x,我有一个值列表,我想检查和验证日期值,将它们从字符串转换为日期对象。但有一个问题,一些日期类似于这种类型的字符串“预计在2018年5月” 我想将“预计在2018年5月”替换为“2018年5月1日”,然后转换为日期对象 以下是我的清单: mylist= ['13 April 2018','Mercury','0','13 April 2018', 'October', '59','27 April 2018','Kaala','0','27 April 2018', 'Adityam','34',
mylist= ['13 April 2018','Mercury','0','13 April 2018', 'October', '59','27 April 2018','Kaala','0','27 April 2018', 'Adityam','34','Expected in May 2018','XXX','99']
以下是我目前的代码:
for n, i in enumerate(mylist):
if i == datetime.strptime(i, '%d %b %Y'):
mylist[n] = datetime.strptime('12 Dec 2016', '%d %b %Y')
pprint.pprint(mylist)
上述清单的最终输出应为:
mylist= ['2018-04-13 00:00:00','Mercury','0','2018-04-13 00:00:00', 'October', '59','2018-04-27 00:00:00','Kaala','0','2018-04-27 00:00:00', 'Adityam','34','2018-05-01 00:00:00','XXX','99']
如有任何帮助,我们将不胜感激。需要进行4项更改:
try:。。。除外:
块:
for n, i in enumerate(mylist):
try:
mylist[n] = datetime.strptime(i, '%d %b %Y')
except ValueError:
pass
%B
:
for n, i in enumerate(mylist):
try:
mylist[n] = datetime.strptime(i, '%d %B %Y')
except ValueError:
pass
['2018-04-13 00:00:00',
'Mercury',
'0',
'2018-04-13 00:00:00',
'October',
'59',
'2018-04-27 00:00:00',
'Kaala',
'0',
'2018-04-27 00:00:00',
'Adityam',
'34',
'2018-05-01 00:00:00',
'XXX',
'99']
需要进行4项更改:
try:。。。除外:
块:
for n, i in enumerate(mylist):
try:
mylist[n] = datetime.strptime(i, '%d %b %Y')
except ValueError:
pass
%B
:
for n, i in enumerate(mylist):
try:
mylist[n] = datetime.strptime(i, '%d %B %Y')
except ValueError:
pass
['2018-04-13 00:00:00',
'Mercury',
'0',
'2018-04-13 00:00:00',
'October',
'59',
'2018-04-27 00:00:00',
'Kaala',
'0',
'2018-04-27 00:00:00',
'Adityam',
'34',
'2018-05-01 00:00:00',
'XXX',
'99']
你的问题是什么?你缺少了一些语句,比如导入,无论如何还有更多的错误,比如你认为“有效”的日期与你指定的格式不匹配。例如:如果我正确理解问题,时间数据“2018年4月13日”与格式“%d%b%Y”不匹配:1。在列表2中查找所有有效日期。将它们转换为ISO 8601时间戳和/或日期对象3???4.利润@Blacksilver您的理解是正确的您的问题是什么?您缺少一些语句,例如导入,无论如何,还有更多错误,例如您认为“有效”的日期与指定格式不匹配。例如:如果我正确理解问题,时间数据“2018年4月13日”与格式“%d%b%Y”不匹配:1。在列表2中查找所有有效日期。将它们转换为ISO 8601时间戳和/或日期对象3???4.利润@Blacksilver你的理解是correct@AranFey:它不会将所有日期仅转换为“%d%b%Y”some@spider22哎呀,我没注意到。我的错。答案已更新。@AranFey:它不会将所有日期仅转换为“%d%b%Y”some@spider22哎呀,我没注意到。我的错。答案已更新。