このトピックでは、Python SDK を使用する際の中国語の文字と時間の処理方法について説明します。
中国語の文字
Python コードに中国語の文字が含まれている場合、実行時エラーが発生する可能性があります。このエラーを防ぐには、コードの先頭で文字コードを宣言します。例:
# -*- coding: utf-8 -*-
データの型
Python 2 は、次の 2 つのデータの型をサポートしています。
データの型
説明
str
文字列。Python 3.x の bytes 型に相当します。
unicode
Unicode ストリーム。長さは文字数です。例えば、
u'éà'の長さは 2 です。Python 3 は、次の 2 つのデータの型をサポートしています。
データの型
説明
str
文字列。Python 2.x の unicode 型に相当します。
bytes
バイトストリーム。長さはバイト数です。例えば、
b'Chinese'の長さはエンコーディングによって異なります。エンコーディングが 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 は、型変換のために次の 3 つの関数を提供します。
関数
説明
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 タイムスタンプに変換します。UNIX タイムスタンプは、1970 年 1 月 1 日 00:00:00 (協定世界時/UTC) から経過した秒数です。例えば、bucket.get_object メソッドによって返される last_modified 値は、UNIX タイムスタンプを表す整数です。
datetime.datetime.fromtimestamp() メソッドを使用して、UNIX タイムスタンプを datetime オブジェクトに変換できます。