Merge pull request #789 from alexta69/copilot/fix-32a91bc7-90af-4cfd-a3e1-d04a36659489

Fix AttributeError when serializing objects without __dict__ attribute
This commit is contained in:
Alex 2025-10-01 09:01:17 +03:00 committed by GitHub
commit c4d7dd9948
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 3 deletions

View File

@ -115,10 +115,18 @@ config = Config()
class ObjectSerializer(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, object):
# First try to use __dict__ for custom objects
if hasattr(obj, '__dict__'):
return obj.__dict__
else:
return json.JSONEncoder.default(self, obj)
# Convert iterables (generators, dict_items, etc.) to lists
# Exclude strings and bytes which are also iterable
elif hasattr(obj, '__iter__') and not isinstance(obj, (str, bytes)):
try:
return list(obj)
except:
pass
# Fall back to default behavior
return json.JSONEncoder.default(self, obj)
serializer = ObjectSerializer()
app = web.Application()