Skip to main content

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

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page