strptime()参数0必须是str,而不是<class'bytes'=“”>

时间:2017-12-31 13:37:53

标签: python numpy matplotlib

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

date,open,close=np.loadtxt('000001.csv',delimiter=',',
                            converters={0:mdates.strpdate2num('%m/%d/%Y')},
                            skiprows=1, usecols=(0,1,4), unpack=True)

plt,plot(date,open)

但是strptime()参数0必须是str,而不是

我已经在网站上阅读了所有关于答案的内容,但这些对我没有帮助。

1 个答案:

答案 0 :(得分:4)

您需要解码文件中的字节loadtxt读取。

编写辅助函数:

def convert_date(date_bytes):
    return mdates.strpdate2num('%m/%d/%Y')(date_bytes.decode('ascii'))

并将其用作转换器:

date, open, close = np.loadtxt('000001.csv',delimiter=',',
                               converters={0: convert_date},
                               skiprows=1, usecols=(0,1,4), unpack=True)

如果.decode('ascii')不起作用,请尝试其他编码。 最好是找出文件的编码是什么。

相关问题