关于TypeError: strptime() argument 1 must be str, not bytes解析
2017-12-15 11:21
1276 查看
在使用datetime.strptime(s,fmt)来输出结果日期结果时,出现错误
TypeError: strptime() argument 1 must be str, not bytes
源代码如下
def datestr2num(s):
return datetime.strptime(s, "%d-%m-%Y").date().weekday()
dates=np.loadtxt('data.csv', delimiter=',', usecols=(1,), converters={1: datestr2num}, unpack=True)
data.csv内容如下
编译器在打开data.csv文件时,将表格里的第2列数组值提取出来返回给dates,第二列值是日期格式字符串,但因为我们是以二进制编码的格式打开第二列值是,返回的值字节字符串bytes,所以需要把它便会string,则对字符串解码用函数decode('asii'),变成string格式。
def datestr2num(s):
return datetime.strptime(s.decode('ascii'), "%d-%m-%Y").date().weekday()
dates=np.loadtxt('data.csv', delimiter=',', usecols=(1,), converters={1: datestr2num}, unpack=True)
原因:
线是一个bytestring,因为你以二进制模式打开文件。您需要对字符串进行解码;如果它是与模式匹配的日期字符串,您可以简单地使用ASCII:
时间。strptime(线。解码('ascii”)、“% y %M - %d…”)
你可以添加一个“忽略”参数来忽略任何非ASCII,但是很可能这个行不适合你的日期格式。
注意:您不能通过价值包含以上的解析格式,它与其他的文本;它没有明确地被strptime()模式是行不通的,无论你使用的编解码器。
如果你的输入在编解码器中变化很大,你无论如何都要捕捉异常。
除了UTF-16或UTF-32,我不希望你遇到使用不同的字节为阿拉伯数字任何编解码器。如果你真的将输入的多字节和单字节编码在一个文件中,你的手上有一个大的问题,不是因为换行符的处理将主要搞砸了。
摘自:http://www.cnblogs.com/zz22--/p/7496345.html
TypeError: strptime() argument 1 must be str, not bytes
源代码如下
def datestr2num(s):
return datetime.strptime(s, "%d-%m-%Y").date().weekday()
dates=np.loadtxt('data.csv', delimiter=',', usecols=(1,), converters={1: datestr2num}, unpack=True)
data.csv内容如下
编译器在打开data.csv文件时,将表格里的第2列数组值提取出来返回给dates,第二列值是日期格式字符串,但因为我们是以二进制编码的格式打开第二列值是,返回的值字节字符串bytes,所以需要把它便会string,则对字符串解码用函数decode('asii'),变成string格式。
def datestr2num(s):
return datetime.strptime(s.decode('ascii'), "%d-%m-%Y").date().weekday()
dates=np.loadtxt('data.csv', delimiter=',', usecols=(1,), converters={1: datestr2num}, unpack=True)
原因:
线是一个bytestring,因为你以二进制模式打开文件。您需要对字符串进行解码;如果它是与模式匹配的日期字符串,您可以简单地使用ASCII:
时间。strptime(线。解码('ascii”)、“% y %M - %d…”)
你可以添加一个“忽略”参数来忽略任何非ASCII,但是很可能这个行不适合你的日期格式。
注意:您不能通过价值包含以上的解析格式,它与其他的文本;它没有明确地被strptime()模式是行不通的,无论你使用的编解码器。
如果你的输入在编解码器中变化很大,你无论如何都要捕捉异常。
除了UTF-16或UTF-32,我不希望你遇到使用不同的字节为阿拉伯数字任何编解码器。如果你真的将输入的多字节和单字节编码在一个文件中,你的手上有一个大的问题,不是因为换行符的处理将主要搞砸了。
摘自:http://www.cnblogs.com/zz22--/p/7496345.html
相关文章推荐
- 关于TypeError: strptime() argument 1 must be str, not bytes解析
- TypeError: write() argument must be str, not bytes
- Python错误TypeError: write() argument must be str, not bytes
- docx2txt TypeError: write() argument must be str, not bytes
- 问题记录2:TypeError: write() argument must be str, not bytes
- python提示错误TypeError: write() argument must be str, not bytes
- TypeError: strptime() argument 0 must be str, not class 'bytes'解决办法
- Python错误TypeError: write() argument must be str, not bytes
- TypeError: write() argument must be str, not bytes
- Python 读写文件 中文乱码 错误TypeError: write() argument must be str, not bytes+
- Python 读写文件 错误TypeError: write() argument must be str, not bytes+
- 保存网页TypeError: must be str, not bytes
- python TypeError: must be str, not bytes错误
- TypeError: must be str, not bytes
- TypeError: must be str, not bytes
- Python持久化时抛出异常:TypeError: must be str, not bytes
- python-TypeError: write() argument must be str, not numpy.float64
- Python 读写文件 中文乱码 错误TypeError: write() argument must be str, not bytes+
- ConnectionResetError: [WinError 10054] 、argument must be str、[Decode error - output not utf-8]
- 关于python2.7的md5加密遇到的问题(TypeError: Unicode-objects must be encoded before hashing)