开发者社区> 问答> 正文

CDNAPIpython版接口问题

吕不为 2015-07-23 09:46:05 5780
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的,
原因:
日志中记录的执行报错信息:decode() argument 1 must be string, not None


这个信息是在接口脚本:aliyun/api/base.py引发的
引发的相关代码:

def percent_encode(encodeStr):
    encodeStr = str(encodeStr)
     res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '')
    res = res.replace('+', '%20')
    res = res.replace('*', '%2A')
    res = res.replace('%7E', '~')
    return res


具体是出在 sys.stdin.encoding
备注:
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding


用任务计划自动执行的时候,就不涉及终端输入了,结果就报错了


我把sys.stdin.encoding去掉了,系统crontab执行就正常了
修改后的代码:

def percent_encode(encodeStr):
    encodeStr = str(encodeStr)
   res = urllib.quote(encodeStr.encode('utf8'), '')
     #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '')
    res = res.replace('+', '%20')
    res = res.replace('*', '%2A')
    res = res.replace('%7E', '~')
    return res



API CDN
分享到
取消 提交回答
全部回答(1)
  • 辣椒炒肉aaa
    2017-12-04 14:43:32
    ReCDNAPIpython版接口问题
    这个问题困扰了我一个月了
    0 0
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题
推荐课程