-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Testing the example code as it is, I was expecting the deserializer would return me the actual object, instead of dict.
import datetime
from strainer import (serializer, field, child,
formatters, validators,
ValidationException)
artist_serializer = serializer(
field('name', validators=[validators.required()])
)
album_schema = serializer(
field('title', validators=[validators.required()]),
field('release_date',
validators=[validators.required(), validators.datetime()],
formatters=[formatters.format_datetime()]),
child('artist', serializer=artist_serializer, validators=[validators.required()])
)
class Artist(object):
def __init__(self, name):
self.name = name
class Album(object):
def __init__(self, title, release_date, artist):
self.title = title
self.release_date = release_date
self.artist = artist
bowie = Artist(name='David Bowie')
album = Album(
artist=bowie,
title='Hunky Dory',
release_date=datetime.datetime(1971, 12, 17)
)
print(album.artist.name)
jsonString = album_schema.serialize(album)
print(jsonString)
deserObj = album_schema.deserialize(jsonString)
print(deserObj)
print(type(deserObj)) . # <--- this returns dict object
print(deserObj.artist.name)
the last line blows off sayingAttributeError: 'dict' object has no attribute 'artist' which is as expected !
What do I have to do to get the actual Album object from json String ?
Metadata
Metadata
Assignees
Labels
No labels