我正在尝试使用具有matplotlib的x轴的datetime对象绘制图形。问题是我收到格式错误 当我尝试将日期(从带有genfromtxt的.txt文件中提取)从字符串转换为datetime对象时。 我不明白为什么这种格式不适合我的数据。
import numpy as np
import matplotlib
import matplotlib.dates as md
import matplotlib.pyplot as plt
import scipy.stats
import datetime
from datetime import datetime
import time
Vent_date = np.genfromtxt(path,dtype=None,skip_header=9,usecols=0,delimiter=",")
dates = []
for line in Vent_date:
line1 = line.decode('utf-8') # As genfromtext doesn't give utf-8 wich is needed for strptime
dates.append(datetime.strptime(line1,"%Y-%m-%d %H:%M:%S"))
我得到:
ValueError: time data '"2018-06-28 15:00:00"' does not match format '%Y-%m-%d %H:%M:%S'
2018-06-28 15:00:00是Vent_date的第一个数据
答案 0 :(得分:0)
如果您注意到该错误包含用单引号引起来的双引号。因此,看起来您的源数据中带有双引号,这就是为什么它失败了。
一些简单的解决方案:
在尝试解析字符串之前,先将字符串中的引号去除:
dates.append(datetime.strptime(line1.strip('"'),"%Y-%m-%d %H:%M:%S"))
更改日期格式字符串以查找包含双引号的日期:
dates.append(datetime.strptime(line1,'"%Y-%m-%d %H:%M:%S"'))