forked from yukinarit/pyserde
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathany.py
More file actions
35 lines (25 loc) · 676 Bytes
/
any.py
File metadata and controls
35 lines (25 loc) · 676 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from dataclasses import dataclass
from typing import Any
from serde import serde
from serde.json import from_json, to_json
@serde
@dataclass
class Bar:
v: float
@serde
@dataclass
class Foo:
a: Any
b: Any
c: Any
d: Any
def main():
# Bar is serialized into dict.
f = Foo(a=10, b=[1, 2], c={'foo': 'bar'}, d=Bar(100.0))
print(f"Into Json: {to_json(f)}")
# However, pyserde can't deserialize the dict into Bar.
# This is because there is no "Bar" annotation in "Foo" class.
s = '{"a": 10, "b": [1, 2], "c": {"foo": "bar"}, "d": {"v": 100.0}}'
print(f"From Json: {from_json(Foo, s)}")
if __name__ == '__main__':
main()