Amazon Comprehend も Amazon Translate も、1度に処理できるテキストサイズの上限が文字数ではなく、バイト数で決まっています。(どちらも5000byte)
とりあえずAPIに投げてエラー処理で対応してもいいのですが、あまり無駄にAPIを叩くようなことをはしない方がいいので、
できるだけ事前にAPIに渡すテキストのサイズが上限を超えていないことを確認することが望ましいです。
そこで、Pythonの文字列の長さをバイト数で取得する方法を調べました。
結論から言うと、バイト列オブジェクトにエンコードして、その後に長さを調べると良いようです。
エンコードには、 str.encode
を使います。
以下のようにして、”走れメロス”が15バイトであることがわかりました。
title="走れメロス"
print(len(title.encode()))
# 15