私は、デフォルトのjsonエンコーダーとセットを使用して変換できるすべてのものを変換する一種の「ユニバーサル」jsonデコーダーを作成していstr()
ます.最初にどんな種類のデータがあったかを知っています。
したがって、小さな修正により、次のコードはhereから取得されます。
import json
class SetEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, set):
return list(obj)
try:
return json.JSONEncoder.default(self, obj)
except TypeError:
return str(obj)
次に、このエンコーダーを使用して関数を変換しようとすると、次のようなものが返されます。
'<function a at 0x10ddd8f28>'
これも少しばかげていますが、私の目的にはまったく問題ありません。
問題はstr()
、入力引数として提供されたものの変換に失敗した場合はどうなるかということです。どのようなエラーが発生しますか? 私はソースを調べましstr
たが、変換エラーの可能性を正確に (もしあったとしても?) 取得できませんでした。または、提供されたあらゆる種類の入力を変換すると想定されていますか?