Driver Validate JSON

Demonstrates how validate your JSON string that you include in your switch driver script.

Example Scripts

Copy
Validate JSON from String
import json

def valid_json(jsonstr):
    try:
        json.loads(jsonstr)
    except ValueError as e:
        return False
    return True

json_str = """
{
    "ModelNumber": "My Switch",
    "SerialNumber": "12455",
    "SettlingTimeSeconds": "50e-3",
    "Groups": [
        {
            "Name": "",
            "InputPorts": ["1", "2", "3", "4", "5", "6", "7", "8"],
            "OutputPorts": ["IN"],
            "Wavelengths": ["1350 nm", "1550 nm"]
        }
    ]
} """

print(valid_json(json_str))
Copy
Validate JSON from String
import json

def valid_json(jsonstr):
    try:
        json.loads(jsonstr)
    except ValueError as e:
        return False
    return True

json_str = """
{
    "ModelNumber": "My Switch",
    "SerialNumber": "12455",
    "SettlingTimeSeconds": "50e-3",
    "Groups": [
        {
            "Name": "SW1",
            "InputPorts": ["1", "2", "3", "4", "5", "6", "7", "8"],
            "OutputPorts": ["IN"],
            "Wavelengths": ["1350 nm", "1550 nm"]
        },
        {
            "Name": "SW2",
            "InputPorts": ["1", "2", "3", "4", "5", "6", "7", "8", "9"],
            "OutputPorts": ["IN 1", "IN 2", "IN 3", "IN 4"],
            "Wavelengths": ["1350 nm", "1550 nm"]
        }
    ]
} """

print(valid_json(json_str))
Copy
Validate JSON from Structure
import json

def valid_json(jsonstr):
    try:
        json.loads(jsonstr)
    except ValueError as e:
        return False
    return True

switch = {'Name': '',
         'InputPorts': ['1', '2', '3', '4', '5', '6', '7', '8'],
         'OutputPorts': ['IN'],
         'Wavelengths': ['1350 nm', '1550 nm']}

sw_list = [switch]
data_structure = {'ModelNumber': 'My Switch', 'SerialNumber': '12455', 'SettlingTimeSeconds': '50e-3', 'Groups': sw_list}
json_str = json.dumps(data_structure)
print(valid_json(json_str))
Copy
Validate JSON from Structure
import json

def valid_json(jsonstr):
    try:
        json.loads(jsonstr)
    except ValueError as e:
        return False
    return True

sw1 = {'Name': 'SW1',
       'InputPorts': ['1', '2', '3', '4', '5', '6', '7', '8'],
       'OutputPorts': ['IN']}
sw2 = {'Name': 'SW2',
       'InputPorts': ['1', '2', '3', '4', '5', '6', '7', '8', '9'],
       'OutputPorts': ['IN 1', 'IN 2', 'IN 3', 'IN 4'],
       'Wavelengths': ['1350 nm', '1550 nm']}
sw_list = [sw1, sw2]
data_structure = {'ModelNumber': 'My Switch', 'SerialNumber': '12455', 'SettlingTimeSeconds': '50e-3', 'Groups': sw_list}
json_str = json.dumps(data_structure)
print(valid_json(json_str))