全部产品
对象存储 OSS

中文和时间

更新时间:2017-06-07 13:26:11   分享:   

中文

为了讨论的便利,先对即将用到的名词进行界定和描述:

名词 描述
str Python缺省的字符串类型。Python 2.x中是bytes类型;Python 3.x中是unicode类型
bytes 字节流,其长度就是字节数。如 b'中文' 的长度取决于编码,如果是UTF-8编码,则为6
unicode unicode流,其长度是字符数,如 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编码的,请确保Python源文件也是UTF-8编码的

帮助函数

Python SDK提供了三个函数,帮助用户做类型转换:

函数 描述
to_bytes 把unicode类型转换为UTF-8编码的bytes;其他类型,则原值返回
to_unicode 把UTF-8编码的bytes转换为unicode;其他类型,则原值返回
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()等方法转换。

本文导读目录
本文导读目录
以上内容是否对您有帮助?