#!/usr/bin/env python3
import json
import random
from collections import OrderedDict
from functools import reduce
rules = [
(('B', 'K1'), lambda: random.randint(0, 5)),
(('B', 'K2'), lambda: random.randint(1, 20)),
(('A', 'K3'), lambda: random.choice(["QWERTY", "ASDFGHJ"]))
]
result = OrderedDict()
for (*keys, newkey), generate in rules:
d = reduce(lambda d, k: d.setdefault(k, OrderedDict()), keys, result)
d[newkey] = generate()
import sys
json.dump(result, sys.stdout, indent=4, ensure_ascii=False)
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwppbXBvcnQganNvbgppbXBvcnQgcmFuZG9tCmZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CmZyb20gZnVuY3Rvb2xzIGltcG9ydCByZWR1Y2UKCnJ1bGVzID0gWwogICAgKCgnQicsICdLMScpLCBsYW1iZGE6IHJhbmRvbS5yYW5kaW50KDAsIDUpKSwgCiAgICAoKCdCJywgJ0syJyksIGxhbWJkYTogcmFuZG9tLnJhbmRpbnQoMSwgMjApKSwKICAgICgoJ0EnLCAnSzMnKSwgbGFtYmRhOiByYW5kb20uY2hvaWNlKFsiUVdFUlRZIiwgIkFTREZHSEoiXSkpCl0KCnJlc3VsdCA9IE9yZGVyZWREaWN0KCkKZm9yICgqa2V5cywgbmV3a2V5KSwgZ2VuZXJhdGUgaW4gcnVsZXM6CiAgICBkID0gcmVkdWNlKGxhbWJkYSBkLCBrOiBkLnNldGRlZmF1bHQoaywgT3JkZXJlZERpY3QoKSksIGtleXMsIHJlc3VsdCkKICAgIGRbbmV3a2V5XSA9IGdlbmVyYXRlKCkKCmltcG9ydCBzeXMKanNvbi5kdW1wKHJlc3VsdCwgc3lzLnN0ZG91dCwgaW5kZW50PTQsIGVuc3VyZV9hc2NpaT1GYWxzZSk=