本文介绍使用Python SDK时所用到的中文和时间知识。
中文
在Python代码中如果使用了中文字符,运行时会出错。因此,您需要在代码的开头部分加入字符编码的声明,例如:
# -*- coding: utf-8 -*-
- 数据类型
Python 2.x支持以下两种数据类型:
数据类型 描述 str 字符串。对应Python 3.x中的bytes类型。 unicode unicode流。其长度是字符数,如 u'中文'
的长度是2。Python 3.x支持以下两种数据类型:
数据类型 描述 str 字符串。对应Python 2.x中的unicode类型。 bytes 字节流。其长度是字节数,如 b'中文'
的长度取决于编码,如果是UTF-8编码,则为6。 - 输入、输出类型约定
输入类型约定如下:
输入 类型 备注 OSS文件名 str 如为bytes,要求是UTF-8编码。 本地文件名 str, unicode 如为bytes,要求是UTF-8编码,例如bucket.get_object_to_file里的yourLocalFile参数。 输入数据流 bytes 例如bucket.put_object里的data参数。 输出类型约定如下:
输出 类型 备注 解析XML得到的结果 str 例如通过bucket.list_object得到结果中的字符串。 下载内容 bytes Python SDK默认bytes类型经过UTF-8编码,请确保Python源文件也是UTF-8编码。 - 类型转换函数
Python SDK提供了三个用于类型转换的函数:
函数 描述 to_bytes - Python 2.x中,把unicode转换为str。其他类型则原值返回。
- Python 3.x中,把str转换为bytes。其他类型则原值返回。
to_unicode - Python 2.x中,把str转换为unicode。其他类型则原值返回。
- Python 3.x中,把bytes转换为str。其他类型则原值返回。
to_string Python 2.x中相当于to_bytes。Python 3.x中相当于to_unicode。
时间
Python SDK会把从服务器获得的时间戳字符串(datetime.datetime类型的时间)都转换为Unix Time类型的时间,即自1970年1月1日UTC零点以来的秒数。例如bucket.get_object方法返回结果中的last_modified就是一个int类型的Unix Time。
您可以通过datetime.datetime.fromtimestamp()方法进行时间转换,得到时间戳字符串。