JSON

Module JSON provides a configuration reader implementation for the JSON format.

config.json

{
  "version": 1
  "list": [
    "item_1",
    "item_2"
  ],
  "dict": {
    "key_1": "value_1",
    "key_2": "value_2"
  },
  "complex": {
    "path": {
      "to": {
        "list": [
          "item_10",
          "item_11",
          "item_12"
        ],
        "dict": {
          "key_10": "value_10",
          "key_11": "value_11"
        }
      }
    }
  }
}

Reading a JSON Formatted Config File

from pathlib import Path
from pyTooling.Configuration.JSON import Configuration

configFile = Path("config.json")
config = Configuration(configFile)

Accessing Values by Name

# root-level scalar value
configFileFormatVersion = config["version"]

# value in a sequence
firstItemInList = config["list"][0]

# first value in dictionary
firstItemInDict = config["dict"]["key_1"]

Store Nodes in Variables

# store intermediate node
node = config["complex"]["path"]["to"]

# navigate further
nestedList = node["list"]
nestedDict = node["dict"]

Iterate Sequences

# simple list
simpleList = config["list"]
for item in simpleList:
  pass

# deeply nested list
nestedList = config["complex"]["path"]["to"]["list"]
for item in nestedList:
  pass

Iterate Dictionaries

Todo

JSON:: Needs documentation