JSON को Python में परिवर्तित करें
JSON को Python क्लास में बदलें
JSON को Python में बदलना
3.6
3.5
3.6
3.7
आपका पायथन कोड
from typing import Any, List, TypeVar, Callable, Type, cast
T = TypeVar("T")
def from_int(x: Any) -> int:
assert isinstance(x, int) and not isinstance(x, bool)
return x
def from_str(x: Any) -> str:
assert isinstance(x, str)
return x
def from_list(f: Callable[[Any], T], x: Any) -> List[T]:
assert isinstance(x, list)
return [f(y) for y in x]
def to_class(c: Type[T], x: Any) -> dict:
assert isinstance(x, c)
return cast(Any, x).to_dict()
class Nested:
a: int
b: int
def __init__(self, a: int, b: int) -> None:
self.a = a
self.b = b
@staticmethod
def from_dict(obj: Any) -> 'Nested':
assert isinstance(obj, dict)
a = from_int(obj.get("a"))
b = int(from_str(obj.get("b")))
return Nested(a, b)
def to_dict(self) -> dict:
result: dict = {}
result["a"] = from_int(self.a)
result["b"] = from_str(str(self.b))
return result
class GeneratedClass:
a: str
arr: List[int]
nested: Nested
def __init__(self, a: str, arr: List[int], nested: Nested) -> None:
self.a = a
self.arr = arr
self.nested = nested
@staticmethod
def from_dict(obj: Any) -> 'GeneratedClass':
assert isinstance(obj, dict)
a = from_str(obj.get("a"))
arr = from_list(from_int, obj.get("arr"))
nested = Nested.from_dict(obj.get("nested"))
return GeneratedClass(a, arr, nested)
def to_dict(self) -> dict:
result: dict = {}
result["a"] = from_str(self.a)
result["arr"] = from_list(from_int, self.arr)
result["nested"] = to_class(Nested, self.nested)
return result
def generated_class_from_dict(s: Any) -> GeneratedClass:
return GeneratedClass.from_dict(s)
def generated_class_to_dict(x: GeneratedClass) -> Any:
return to_class(GeneratedClass, x)