Esempio n. 1
0
def loadJSONFromFileAndValidate(filePath,
                                bStrict=False,
                                bDebugging=False,
                                validation=None):
    import jk_json
    from .schema_validator import Validator
    if validation:
        with open(filePath, "r", encoding="utf-8") as f:
            jsonData = jk_json.loads(f.read(),
                                     bStrict=bStrict,
                                     bDebugging=bDebugging)

        if isinstance(validation, dict):
            validator = SchemaParser.parse(validation, None)
        elif isinstance(validation, Validator):
            validator = validation
        else:
            raise Exception("Unexpected type for argument 'validation': " +
                            repr(validation))

        if validator.validate(jsonData):
            return jsonData
        else:
            raise Exception("File " + repr(filePath) +
                            " does not match the expected schema!")

    else:
        with open(filePath, "r", encoding="utf-8") as f:
            return jk_json.loads(f.read(),
                                 bStrict=bStrict,
                                 bDebugging=bDebugging)
Esempio n. 2
0
import cProfile

from jk_logging import *

import jk_json

bDebugging = False
#bDebugging = True

with codecs.open("test-relaxed.json", "r", "utf-8") as f:
    jsonTextData = f.read()

#for t in jk_json.TokenizerRelaxed().tokenize(jsonTextData):
#	print(t)

jsonData = jk_json.loads(jsonTextData, bStrict=False, bDebugging=bDebugging)

#print(jk_json.dumps(jsonData, indent="\t"))

assert "bla" in jsonData
assert isinstance(jsonData["bla"], int)
assert jsonData["bla"] == 123

assert "blubb" in jsonData
assert isinstance(jsonData["blubb"], list)
assert isinstance(jsonData["blubb"][0], int)
assert jsonData["blubb"][0] == 2345
assert isinstance(jsonData["blubb"][1], int)
assert jsonData["blubb"][1] == -678
assert isinstance(jsonData["blubb"][2], float)
assert jsonData["blubb"][2] == 3.1415927
Esempio n. 3
0
#!/usr/bin/env python3



import jk_json




FILE_NAME = "test-relaxed.json"

jData = jk_json.loadFromFile(FILE_NAME)

print("=" * 160)
jk_json.prettyPrint(jData)
print("=" * 160)


text = jk_json.prettyPrintToStr(jData)

jData2 = jk_json.loads(text)

print("Parsing again succeeded.")



Esempio n. 4
0
def loadFromFile(filePath, log=None):
    with open(filePath, "r") as f:
        textToParse = f.read()
    import jk_json
    jsonDef = jk_json.loads(textToParse)
    return SchemaParser.parse(jsonDef, log)
Esempio n. 5
0
def loads(textToParse, log=None):
    import jk_json
    jsonDef = jk_json.loads(textToParse)
    return SchemaParser.parse(jsonDef, log)