阿里云
发表主题 回复主题
  • 3673阅读
  • 1回复

CDNAPIpython版接口问题

级别: 新人
发帖
2
云币
12
— 本帖被 cloud_service 从 售后支持 移动到本区(2015-07-23) —
使用了几天CDN API接口下载日志,每次手动执行脚本,都是成功的,但用系统任务计划执行,都是失败的, -MqWcB9&  
原因: X}5aE4K/  
日志中记录的执行报错信息:decode() argument 1 must be string, not None b:iZ.I  
Bw[jrK  
>Lo!8Hen  
这个信息是在接口脚本:aliyun/api/base.py引发的 Yv`8{_8L  
引发的相关代码: h!*++Y?&0  
%YaUc{.%  
def percent_encode(encodeStr): cc%O35o  
    encodeStr = str(encodeStr) |;-,(509  
    res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') ^!*?vHx:  
    res = res.replace('+', '%20') _uO#0 )l  
    res = res.replace('*', '%2A') ] _/d  
    res = res.replace('%7E', '~') a#0G mK  
    return res Y"uFlHN&i  
x,Cc$C~YP  
hao0_9q+  
具体是出在sys.stdin.encoding J L9d&7-  
备注: !k&~|_$0@  
终端的输入编码:sys.stdin.encoding终端的输出编码:sys.stdout.encoding toipEp<ci  
w jmZ`UMz  
9rb/hkX&  
用任务计划动执行的时候,就不涉及终端输入了,结果就报错了 [hg|bpEG  
8i;N|:WdH  
@Y>3-,o,S  
我把sys.stdin.encoding去掉了,系统crontab执行就正常了 JXlFo3<  
修改后的代码: \ooqa<_  
vtFA#})~  
def percent_encode(encodeStr): j8os6I  
    encodeStr = str(encodeStr) !dLz ?0  
   res = urllib.quote(encodeStr.encode('utf8'), '') KrkZv$u,  
    #res = urllib.quote(encodeStr.decode(sys.stdin.encoding).encode('utf8'), '') $/C<^}A  
    res = res.replace('+', '%20') co3H=#2a  
    res = res.replace('*', '%2A') wN)R !6  
    res = res.replace('%7E', '~') N,ik&NIWy  
    return res .;tO;j |6  
u,F d[[t  
Hcd>\0  
v%< _Mh  
级别: 新人
发帖
1
云币
1
只看该作者 沙发  发表于: 2017-12-04
ReCDNAPIpython版接口问题
这个问题困扰了我一个月了 8 (^2  
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个