Python-SDK之如何实现 中文和时间?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Python-SDK之如何实现 中文和时间?

青衫无名 2017-10-18 11:44:47 1214

中文


为了讨论的便利,先对即将用到的名词进行界定和描述:
名词描述
strPython缺省的字符串类型。Python 2.x中是bytes类型;Python 3.x中是unicode类型
bytes字节流,其长度就是字节数。如 b'中文' 的长度取决于编码,如果是UTF-8编码,则为6
unicodeunicode流,其长度是字符数,如 u'中文' 的长度是 2


输入、输出类型约定


Python SDK中有三类输入参数:
输入参数建议类型备注
OSS文件名str如果是bytes,则要求是UTF-8编码
本地文件名str, unicode如果是bytes,则要求是UTF-8编码
输入数据流bytes如Bucket.put_object的 data 参数

其中“本地文件名”指的是诸如Bucket.get_object_to_file里的本地文件名参数。
Python SDK还有两类输出:
输出类型
解析XML得到的结果str
下载内容bytes

其中“解析XML得到的结果”指的是诸如Bucket.list_objects、Bucket.get_bucket_lifecycle等接口得到的结果中的字符串。
由于Python SDK默认认为bytes类型是经过UTF-8编码的,请[backcolor=transparent]确保Python源文件也是UTF-8编码的。

帮助函数


Python SDK提供了三个函数,帮助用户做类型转换:
函数描述
to_bytes把unicode类型转换为UTF-8编码的bytes;其他类型,则原值返回
to_unicode把UTF-8编码的bytes转换为unicode;其他类型,则原值返回
[tr=rgb(239, 251, 255)][td]to_string Python 2.x中相当于to_bytes;Python 3.x相当于to_unicode

时间


Python SDK会把从服务器获得的时间戳字符串都转换为 Unix Time,即 自1970年1月1日UTC零点以来的秒数。比如Bucket.get_object结果中的last_modified就是一个int类型的Unix Time。
如果想得到datetime.datetime这样的类型,可以通过datetime.datetime.fromtimestamp()等方法转换。
XML Unix 开发工具 对象存储 数据格式 Python
分享到
取消 提交回答
全部回答(0)
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题