qiniu Python SDK:6.1.4上传文件出类型错误提示,是什么问题,qiniu6.1.4,我用qiniu Pyth


我用qiniu Python SDK:6.1.4 上传文件在执行下面语句

ret, err = qiniu.io.put_file(uptoken, key, localfile)

总是会出现TypeError:

    ...    File "C:\Python27\lib\httplib.py", line 924, in putheader      str = '%s: %s' % (header, '\r\n\t'.join(values))    TypeError: sequence item 0: expected string, long found

我修改了qiniu-6.1.4 中qiniu/rpc.py

32 self.set_header("Content-Length", content_length)
改为:
32 self.set_header("Content-Length", str(content_length))
暂时解决了上传问题,我想这个SDK应该没问题,不过至于我哪里出问题了,那就等后来的告诉在下了

这。。。

str = '%s: %s' % (header, '\r\n\t'.join(values))

居然使用str关键字作为变量名,太奇怪了。

我这边能找到的
python 2.7.3 2.7.5 2.7.6中:

def putheader(self, header, *values):    """Send a request header line to the server.    For example: h.putheader('Accept', 'text/html')    """    if self.__state != _CS_REQ_STARTED:        raise CannotSendHeader()    hdr = '%s: %s' % (header, '\r\n\t'.join([str(v) for v in values]))    self._output(hdr)

putheader都已经是这个代码了。

用 python TypeError in putheader 做关键字google查了一下,类似的错误主要出现在10-11年,也许是一个比较早的版本?试着升级一下python看。

UPDATE

看了一下python提供的源码包,
2.7.0中的写法确实是会报错的那种
2010-9-27发布的2.7.1就已经进行了修正,升级一下python吧。

编橙之家文章,

评论关闭