Проблема с разбором datetime.datetime.strptime
У меня есть список из 1500 строк данных, которые выглядят как
USGS \t 14211720 \t 2017-02-12 22:00 \t PST \t 117000 \t P 11.96 P
Прежде чем я добавлю строку даты и времени, разгрузочный список и gagheightList работают и дают мне счет 1400 строк, но когда я добавляю в него дату и время, я получаю
TypeError: strptime() argument 1 must be str, not list"
I am trying to pull the date, discharge and height to make two graphs
Мой код:
import csv
import datetime
dateList = []
dischargeList = []
gageheightList = []
readCSV = csv.reader(dataLines, delimiter = '\t')
for row in readCSV:
date_str = [2]
dateTIME = datetime.datetime.strptime(date_str,"%Y,%m,%d T%H:%M")
dateList.append(dateTIME)
discharge = row[4]
dischargeList.append(discharge)
gageheight = row[6]
gageheightList.append(gageheight)
#print(dateList)
#this line was just to test if the dates were making it to a list
print("we have {} items in the date list".format(len(dateList)))
print("we have {} items in thegage height list".format(len(gageheightList)))
print ("we have {} items in the discharge list".format(len(dischargeList)))
2 ответа
Как сказал AJPennster, вы должны знать, как использовать datetime
модуль. Код ниже является использование метода datetime.datetime.strptime(string, format)
import datetime
_str1 = "2017,02,12 22:00"
_str2 = "2017-02-12 22:00"
format_str1 = datetime.datetime.strptime(_str1, "%Y,%m,%d %H:%M")
format_str2 = datetime.datetime.strptime(_str1, "%Y-%m-%d %H:%M")
Когда используешь datetime.datetime.strptime(string, format)
метод, вы должны заполнить ваш параметр формата строго в соответствии с форматом предоставленного вами srting.
date_str = [2]
наборы date_str
как список, содержащий 2
,
Вот почему, когда вы пытаетесь сделать
dateTIME = datetime.datetime.strptime(date_str,"%Y,%m,%d T%H:%M")
ты получаешь
TypeError: strptime() argument 1 must be str, not list"
изменения date_str = [2]
в date_str = row[2]
должен решить вашу проблему.