Json Abstract Base Class
JSONABC is a minimal, pythonic JSON to class serializer. It haszero dependencies which makes it very lightweight. It provide a very minimal API with few options and play nicely with python type checking.
example 1 (simple)
fromjsonabcimportJSONABC# All you need to do is define JSONABC as your metaclassclassResponse(metaclass=JSONABC):args:dictheaders:dictorigin:strurl:strresp=requests.get("https://httpbin.org/get")json_data=resp.json()# Your class can now take a single dict and automatically validate and parse it.obj=Response(response)# obj attributes now have their correspondent values from our json data.# you can also convert your class back to its json form.# JSONABC will preserve the same names for the original json keys.print(obj.json())
example 2 (composite)
fromjsonabcimportJSONABC# You can also define composite values instead of using dictsclassHeaders(metaclass=JSONABC):accept:straccept_encoding:strclassResponse(metaclass=JSONABC):args:dictheaders:Headersorigin:strurl:strresp=requests.get("https://httpbin.org/get")json_data=resp.json()obj=Response(response)# headers attr is now an instance of Headers with the same behavior as Responseobj.headers