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

XY *_*XUE 1 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)
Run Code Online (Sandbox Code Playgroud)

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

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

Mik*_*ler 5

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

编写一个辅助函数:

def convert_date(date_bytes):
    return mdates.strpdate2num('%m/%d/%Y')(date_bytes.decode('ascii'))
Run Code Online (Sandbox Code Playgroud)

并将其用作转换器:

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

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