本文介绍使用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()方法进行时间转换,得到时间戳字符串。