七牛云存储 - qiniu python sdk upload file TypeError?
伊谢尔伦
伊谢尔伦 2017-04-17 12:58:10
[Python讨论组]

我用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
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号