Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将日期从numpyarray转换为datetime类型->;获得神秘错误_Python_Datetime_Numpy - Fatal编程技术网

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)
。总的来说,如果你希望人们继续帮助你,投票/接受有用的答案可能是一个好习惯。