Skip to main content
Help the Python Software Foundation raise $60,000 USD by December 31st!  Building the PSF Q4 Fundraiser

Self-Use Python lib

Project description

Self-Use Python Lib

PyPI image image image

DirTree

image

Json To Object

Usage

more info in json_test_cases

import selfusepy
obj: One = selfusepy.parse_json(jsonStr, One())

Notice

Because Python is not a strongly-typed language, so you must
assign a value when you define a variable in class, 
otherwise the parser can not get the right type of each variable, 
just like examples below 

e.g. 1

Python Class

from selfusepy.jsonparse import BaseJsonObject
class One(BaseJsonObject):

  def __init__(self):
    self.x: str = ''  # have to be init
    self.two: One.Two = One.Two()  # have to be init

  class Two(BaseJsonObject):
    def __init__(self):
      self.y: str = ''
      self.three: One.Two.Three = One.Two.Three()

    class Three(BaseJsonObject):
      def __init__(self):
        self.z: str = ''

Json str

{
  "x": "x",
  "two": {
    "y": "y",
    "three": {
      "z": "z"
    }
  }
}

e.g. 2

Python Class

from selfusepy.jsonparse import BaseJsonObject
from typing import List
class One1(BaseJsonObject):

  def __init__(self):
    self.x: str = ''
    self.two: List[One1.Two] = [One1.Two()]

  class Two(BaseJsonObject):
    def __init__(self):
      self.y: str = ''

Json str

{
  "x": "x",
  "two": [
    {
      "y": "y1"
    },
    {
      "y": "y2"
    }
  ]
}

e.g. 4

from selfusepy.jsonparse import DeserializeConfig, BaseJsonObject
from selfusepy.utils import override_str
@override_str
@DeserializeConfig({'x--': 'x'})
class One2(BaseJsonObject):

  def __init__(self):
    self.x: str = ''
    self.two: One2.Two = One2.Two()

  @override_str
  @DeserializeConfig({'y--': 'y'})
  class Two(BaseJsonObject):
    def __init__(self):
      self.y: str = ''
      self.three: One2.Two.Three = One2.Two.Three()

    @override_str
    @DeserializeConfig({'z--': 'z'})
    class Three(BaseJsonObject):
      def __init__(self):
        self.z: str = ''

Json str

{
  "x--": "x",
  "two": {
    "y--": "y",
    "three": {
      "z--": "z"
    }
  }
}

e.g. 5

def handle(x):
  return datetime.fromisoformat(x)

@DeserializeConfig({"date": JsonField(func = handle)})
class Obj(BaseJsonObject):

  def __init__(self):
    self.date: datetime = datetime.now()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for selfusepy, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size selfusepy-0.1.0.tar.gz (28.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page