30 lines
570 B
Python

import lark
import pprint
class JsonTransformer(lark.Transformer):
def string(self, el):
(el,) = el
return el[1:-1]
def number(self, el):
(el, ) = el
return float(el)
list = list
dict = dict
pair = tuple
null = lambda self, _: None
true = lambda self, _: True
false = lambda self, _: False
json = '{"key": ["item0", "item1", 3.14, true]}'
with open("json.lark") as f:
json_parser = lark.Lark(f, start="value", parser="lalr", transformer=JsonTransformer())
t = json_parser.parse(json)
print(t)