Python中文和时间

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