Python - 将数组中的字符串转换为日期
Python - converting strings in an array to dates
我已经从 TXT 文件中读取了一个字符串数组,并使用这样一行将其保存为一个数组(包含超过一千个值):
dates = np.genfromtxt('filename.txt', delimiter=";", usecols=(0), dtype=None)
接下来,我想将字符串转换为日期。我尝试使用这条线:
dates2 = dt.datetime.strptime([dates], '"%Y-%m-%d"').date()
然而,我得到一个错误:
TypeError: must be string, not list
我发现这样的代码可以正常工作:
data1='"2010-02-28"'
data1_1 = dt.datetime.strptime(data1, '"%Y-%m-%d"').date()
我应该如何处理所描述的问题?
未来读者请注意:请不要编辑此答案。 '"%Y-%m-%d"'
不是错误。 OP 的日期用引号引起来。
dates
是一个字符串列表。因此,如果您想从其元素创建一个日期列表:
dates_list = [dt.datetime.strptime(date, '"%Y-%m-%d"').date() for date in dates]
此行遍历 dates
列表中的字符串并使用列表理解创建新的日期列表。
您可以使用拆分来获得更快的结果:
from datetime import datetime
today = datetime.now().strftime("%Y-%m-%d").split('-')
我已经从 TXT 文件中读取了一个字符串数组,并使用这样一行将其保存为一个数组(包含超过一千个值):
dates = np.genfromtxt('filename.txt', delimiter=";", usecols=(0), dtype=None)
接下来,我想将字符串转换为日期。我尝试使用这条线:
dates2 = dt.datetime.strptime([dates], '"%Y-%m-%d"').date()
然而,我得到一个错误:
TypeError: must be string, not list
我发现这样的代码可以正常工作:
data1='"2010-02-28"'
data1_1 = dt.datetime.strptime(data1, '"%Y-%m-%d"').date()
我应该如何处理所描述的问题?
未来读者请注意:请不要编辑此答案。 '"%Y-%m-%d"'
不是错误。 OP 的日期用引号引起来。
dates
是一个字符串列表。因此,如果您想从其元素创建一个日期列表:
dates_list = [dt.datetime.strptime(date, '"%Y-%m-%d"').date() for date in dates]
此行遍历 dates
列表中的字符串并使用列表理解创建新的日期列表。
您可以使用拆分来获得更快的结果:
from datetime import datetime
today = datetime.now().strftime("%Y-%m-%d").split('-')