python - Python - 将 JSON 模式转换为 JSON 模板
问题描述
已经浏览了网络上的每个页面/指南,并且想在我离开之前询问并尝试创建自己的...
是否有将 python 中的 JSON 模式转换为基本 JSON 模板的包或简单方法?
即删除类型、模式、所需选项并保留核心空 JSON 模板?
在一个非常基本的层面上:{'name':{'type':'string'}} ==> {'name':''}
一直在阅读与模式阅读器相关的所有文档,除了 python_jsonschema_objects 之外,似乎没有一个文档可以转换回基本文档,但是据我所知,多层次的斗争只有在它具有默认值时才导出该值,否则必须填充所有手动设置值。
谢谢
解决方案
这是我很久以前出于类似目的使用的东西,希望您会发现它对您有所帮助,或者至少是解决您问题的一个很好的起点!
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
推荐阅读
- excel - VBA重复字符串布尔函数#NAME错误
- android - 当我从其他活动中删除孩子时,onChildRemoved 一直在打电话
- php - PHP 通过组合现有数组中的元素创建一个新的多维数组
- javascript - 从左上角到右下角对 lat longs 的对象进行排序
- python - 如何将一列设置为熊猫日期框架中的索引
- react-native - 反应原生地图假和模拟位置
- ruby-on-rails - 在 Rails 5.2 中使用 materializeCss 卡片创建复选框
- python - 从 Python 中的大型单个数据集中创建多个直方图,按用户分组
- pdf - 将 eps 转换为 pdf 并裁剪空白
- python - PyQt5 Qthread属性错误,调用self.somelist