qiniu python sdk upload file TypeError?

我用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
阅读 3.7k
2 个回答

这。。。

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吧。

新手上路,请多包涵

我修改了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应该没问题,不过至于我哪里出问题了,那就等后来的告诉在下了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题