pyserde
pyserde copied to clipboard
SerdeError deserializing list of optional
Seen on 0.9.7
but then updated and still present on 0.10.2
(#315 is amazing BTW 👏🏻 👏🏻 👏🏻 ):
from dataclasses import dataclass
from serde.json import to_json, from_json
@dataclass
class Foo():
stuff: list[int | None]
foo = to_json(Foo([1, 2, None]))
from_json(Foo, foo)
Traceback (most recent call last):
File "/home/dave/.pyenv/versions/ng/lib/python3.10/site-packages/serde/de.py", line 398, in from_obj
return deserializable_to_obj(c)
File "/home/dave/.pyenv/versions/ng/lib/python3.10/site-packages/serde/de.py", line 380, in deserializable_to_obj
res = serde_scope.funcs[func_name](cls, maybe_generic=maybe_generic, data=o, reuse_instances=reuse_instances)
File "<string>", line 11, in from_dict
File "<string>", line 11, in <listcomp>
AttributeError: 'int' object has no attribute 'get'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/dave/ng/pyserde_list_float_bug.py", line 9, in <module>
from_json(Foo, foo)
File "/home/dave/.pyenv/versions/ng/lib/python3.10/site-packages/serde/json.py", line 77, in from_json
return from_dict(c, de.deserialize(s, **opts), reuse_instances=False)
File "/home/dave/.pyenv/versions/ng/lib/python3.10/site-packages/serde/de.py", line 486, in from_dict
return from_obj(cls, o, named=True, reuse_instances=reuse_instances)
File "/home/dave/.pyenv/versions/ng/lib/python3.10/site-packages/serde/de.py", line 463, in from_obj
raise SerdeError(e)
serde.compat.SerdeError: 'int' object has no attribute 'get'