Create JSON randomly
Since python allows objects to be in JSON format by using json module, objects generated by randog can also be in JSON format.
>>> import json
>>> import randog.factory
>>> factory = randog.factory.randdict(
...     name=randog.factory.randstr(length=16),
...     age=randog.factory.randint(18, 64),
... )
>>> value = factory.next()
>>> value_json = json.dumps(value)
In this case, for example, we get the following string:
{"name": "Wosar5aJMwhngJ72", "age": 51}
Note
The same can be done for command execution by using --json option.
Decimal e.t.c.
Types such as Decimal cannot be converted to JSON by default, but can be converted to JSON by specifying the default function.
>>> import json
>>> import randog.factory
>>> factory = randog.factory.randdict(
...     id=randog.factory.randint(0, 999_999),
...     price=randog.factory.randdecimal(0, 1000, decimal_len=2),
... )
>>> value = factory.next()
>>> value_json = json.dumps(value, default=str)
In this case, for example, we get the following string:
{"id": 583085, "price": "754.10"}
Factory of JSON string
In the previous examples, the objects generated by the factory were converted to JSON, but it is also possible to create a factory that outputs values in JSON format from the beginning by using post_process.
>>> import json
>>> import randog.factory
>>> factory = randog.factory.randdict(
...     name=randog.factory.randstr(length=16),
...     age=randog.factory.randint(18, 64),
... ).post_process(lambda v: json.dumps(v))
>>> value_json = factory.next()