Der Grund, es funktioniert nicht, weil erstens ist alles, was Sie versuchen, ein Stück der Liste als Parameter zu datetime()
in Ihrem zu übergeben Schleife, for s in myArray
, jede Iteration von s
sah etwa so aus: [19480916, 19480901, 19480917, 19480901, 19480901, 19481019]
Also, wenn Sie in s[0:4]
vorbei versucht, Sie waren tatsächlich [19480916, 19480901, 19480917, 19480901]
in die datetime(year: int)
Parameter und so weiter setzen.
Wenn Sie beginnen, über jede Zahl in dem Array zu iterieren, das Sie zuvor versucht haben, zu übergeben, ist das nächste Problem, dass Ganzzahlen nicht geschnitten werden können, so müssen Sie jede Datumsstring in eine str
vor dem Schneiden und dann werfen zu einem int
wie du warst.
Siehe mein Beispiel:
myArray = [[19480916, 19480901, 19480917, 19480901, 19480901, 19481019],
[19480917, 19480916, 19481019, 19480922, 19480922, 19490902],
[19481004, 19480917, 19481021, 19480924, 19481004, 19501124]]
Date_List = []
for array in myArray:
for string in array:
s = str(string)
date1 = datetime(year=int(s[0:4]), month=int(s[4:6]), day=int(s[6:8]))
Date_List.append(date1)
und die Ausgabe, die ich bekomme:
>>> from pprint import pprint
>>> pprint(Date_List)
[datetime.datetime(1948, 9, 16, 0, 0),
datetime.datetime(1948, 9, 1, 0, 0),
datetime.datetime(1948, 9, 17, 0, 0),
datetime.datetime(1948, 9, 1, 0, 0),
datetime.datetime(1948, 9, 1, 0, 0),
datetime.datetime(1948, 10, 19, 0, 0),
datetime.datetime(1948, 9, 17, 0, 0),
datetime.datetime(1948, 9, 16, 0, 0),
datetime.datetime(1948, 10, 19, 0, 0),
datetime.datetime(1948, 9, 22, 0, 0),
datetime.datetime(1948, 9, 22, 0, 0),
datetime.datetime(1949, 9, 2, 0, 0),
datetime.datetime(1948, 10, 4, 0, 0),
datetime.datetime(1948, 9, 17, 0, 0),
datetime.datetime(1948, 10, 21, 0, 0),
datetime.datetime(1948, 9, 24, 0, 0),
datetime.datetime(1948, 10, 4, 0, 0),
datetime.datetime(1950, 11, 24, 0, 0)]
die auch im String-Format gedruckt werden kann:
>>> pprint([str(d) for d in Date_List])
['1948-09-16 00:00:00',
'1948-09-01 00:00:00',
'1948-09-17 00:00:00',
'1948-09-01 00:00:00',
'1948-09-01 00:00:00',
'1948-10-19 00:00:00',
'1948-09-17 00:00:00',
'1948-09-16 00:00:00',
'1948-10-19 00:00:00',
'1948-09-22 00:00:00',
'1948-09-22 00:00:00',
'1949-09-02 00:00:00',
'1948-10-04 00:00:00',
'1948-09-17 00:00:00',
'1948-10-21 00:00:00',
'1948-09-24 00:00:00',
'1948-10-04 00:00:00',
'1950-11-24 00:00:00']
ich das versucht, und ich endete up einen Fehler bekommen, der nicht gelöst werden kann, egal was: 'für Unterliste in l: für Artikel in Unterliste: print ([Datum (int (Element), '% Y% m% d')]) würde immer TypeError ergeben: eine Ganzzahl ist erforderlich (hat Typ str). Ich habe auch "date" anstelle von datetime.strptime verwendet, da die Zeit für das, was ich mache, irrelevant ist. – CyclonicLife
@CyclonicLife Entschuldigung, ich sehe nicht, dass Sie das verwenden, was ich vorgeschlagen habe. – alecxe