Из документации Python 3.1.2 (переформатирован для просмотра здесь, но в остальном не отредактирован):
json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True,
allow_nan=True, cls=None, indent=None, separators=None,
default=None, **kw)
default (obj) - это функция, которая должна возвращать сериализуемую версию obj или повышать TypeError . По умолчанию просто возникает TypeError .
То есть ваша __get__
функция должна передаваться как default=yourcustomjsonencoder.__get__
или что-то в этом роде? Просто мысль. Я мог бы быть далеко (и, вероятно, я), но это по крайней мере идея.