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

时间:2015-11-13 02:11:22

标签: python python-3.x matplotlib

我有这个简单的python程序来使用matplotlib绘制图形。

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

days, impressions = np.loadtxt("page-impressions.csv", unpack=True,
        converters={ 0: mdates.strpdate2num('%Y-%m-%d')})

plt.plot_date(x=days, y=impressions, fmt="r-")
plt.title("Pageessions on example.com")
plt.ylabel("Page impressions")
plt.grid(True)

plt.savefig('test.pdf', format='pdf')

如果我使用python3运行此操作,则会出现以下错误。

TypeError: strptime() argument 0 must be str, not <class 'bytes'>

我做错了什么?

b.t.w我试过了http://stackoverflow.com/questions/21117311/time-strptime-argument-0-must-be-str-not-bytes的建议  似乎不适合我

1 个答案:

答案 0 :(得分:0)

以下代码中的相同问题:

import numpy as np
import datetime

def datestr2num(s):
  return datetime.datetime.strptime(s, "%Y-%m-%d").date().weekday()


# 读取CSV文件,设置分隔号,取元组第4,5字段,分拆存储不同列数据
d = np.loadtxt('AAPL_data.csv', delimiter=',', usecols=(0),converters={0 : datestr2num}, unpack=True) 

只需改变:

return datetime.datetime.strptime(s.decode("ASCII"), "%Y-%m-%d").date().weekday()