首页 > 解决方案 > Python - 将 JSON 模式转换为 JSON 模板

问题描述

已经浏览了网络上的每个页面/指南,并且想在我离开之前询问并尝试创建自己的...

是否有将 python 中的 JSON 模式转换为基本 JSON 模板的包或简单方法?

即删除类型、模式、所需选项并保留核心空 JSON 模板?

在一个非常基本的层面上:{'name':{'type':'string'}} ==> {'name':''}

一直在阅读与模式阅读器相关的所有文档,除了 python_jsonschema_objects 之外,似乎没有一个文档可以转换回基本文档,但是据我所知,多层次的斗争只有在它具有默认值时才导出该值,否则必须填充所有手动设置值。

谢谢

标签: pythonjson

解决方案


这是我很久以前出于类似目的使用的东西,希望您会发现它对您有所帮助,或者至少是解决您问题的一个很好的起点!

import json

# Define default values to use for each type, adjust as needed
default_values = {
    'string': '',
    'int': 0,
    'integer': 0,
    'number': 0,
    'array': [],
    'list': [],
    'tuple': [],
    'dict': {},
    'object': {},
    'boolean': 'false',
}


# Iterate the schema and return simplified dictionary or JSON string
def schema_to_json(s, to_json=False):
    res = {k: default_values[v['type']] for k, v in s.items()}
    return json.dumps(res) if to_json else res


# Pass your schema to function and get simplified version back
schema = {
    'name': {'type': 'string'},
    'age': {'type': 'integer'},
}

py_dict = schema_to_json(schema)  # Will return Python dictionary
json_string = schema_to_json(schema, True)  # Will return JSON string


推荐阅读