Python 将日期从numpyarray转换为datetime类型->;获得神秘错误
我用Python 将日期从numpyarray转换为datetime类型->;获得神秘错误,python,datetime,numpy,Python,Datetime,Numpy,我用numpy.loadtxt函数加载了一个文件f,希望提取一些日期。 日期的格式如下:15.08.-2011年8月21日 numpyarr = loadtxt(f, dtype=str, delimiter=";", skiprows = 1) alldate = numpyarr[:,0][0] dat = datetime.datetime.strptime(alldate,"%d.%m. - %d.%m.%Y") 下面是整个错误: Traceback (most recent
numpy.loadtxt
函数加载了一个文件f
,希望提取一些日期。
日期的格式如下:15.08.-2011年8月21日
numpyarr = loadtxt(f, dtype=str, delimiter=";", skiprows = 1)
alldate = numpyarr[:,0][0]
dat = datetime.datetime.strptime(alldate,"%d.%m. - %d.%m.%Y")
下面是整个错误:
Traceback (most recent call last):
File "C:\PYTHON\Test DATETIME_2.py", line 52, in <module>
dat = datetime.datetime.strptime(alldate,"%d.%m. - %d.%m.%Y")
File "C:\Python27\lib\_strptime.py", line 308, in _strptime
format_regex = _TimeRE_cache.compile(format)
File "C:\Python27\lib\_strptime.py", line 265, in compile
return re_compile(self.pattern(format), IGNORECASE)
File "C:\Python27\lib\re.py", line 190, in compile
return _compile(pattern, flags)
File "C:\Python27\lib\re.py", line 242, in _compile
raise error, v # invalid expression
sre_constants.error: redefinition of group name 'd' as group 3; was group 1
回溯(最近一次呼叫最后一次):
文件“C:\PYTHON\Test DATETIME_2.py”,第52行,在
dat=datetime.datetime.StrTime(所有日期,“%d.%m.-%d.%m.%Y”)
文件“C:\Python27\lib\\\\\\\\ strtime.py”,第308行,在\\ strtime中
format\u regex=\u TimeRE\u cache.compile(格式)
文件“C:\Python27\lib\\u strtime.py”,第265行,编译
返回重新编译(self.pattern(format),IGNORECASE)
文件“C:\Python27\lib\re.py”,第190行,编译
返回编译(模式、标志)
文件“C:\Python27\lib\re.py”,第242行,在编译中
raise错误,v#表达式无效
sre_constants.error:将组名“d”重新定义为组3;是第一组
有人知道发生了什么事吗?A
datetime
保存一个日期和时间,而您的字段包含两个日期并尝试将它们提取到一个变量中。具体来说,您得到的错误是因为您使用了两次%d
和%m
您可以尝试以下方法:
a = datetime.datetime.strptime(alldate.split('-')[0],"%d.%m. ")
b = datetime.datetime.strptime(alldate.split('-')[1]," %d.%m.%Y")
a = datetime.datetime(b.year, a.month, a.day)
(这不是最好的代码,但它证明了一个事实,即字符串中隐藏着两种不同格式的日期)。对不起,如果我运行此命令,我会得到以下信息:AttributeError:'datetime.datetime'对象没有属性'Year',我能做什么?@EP1986 Try
a=datetime(b.Year,a.month,a.day)
。总的来说,如果你希望人们继续帮助你,投票/接受有用的答案可能是一个好习惯。