#!/usr/bin/python3

from lark import Lark

json_grammar = r"""
    value: dict
          | list
          | string
          | SIGNED_NUMBER      -> number
          | "true"             -> true
          | "false"            -> false
          | "null"             -> null

    list : "[" [value ("," value)*] "]"

    dict : "{" [pair ("," pair)*] "}"
    pair : string ":" value

    string : ESCAPED_STRING

    %import common.ESCAPED_STRING
    %import common.SIGNED_NUMBER
    %import common.WS
    %ignore WS
    """
json_parser = Lark(json_grammar, start='value', parser="lalr")

text = """{
    "campo1" : ["valor1",3,4,5,[]]
}"""

print(json_parser.parse(text).pretty())