vjson创建一个对象来序列化jsonschema中指定的唯一类型。它的工作方式类似于json模块。

vjson的Python项目详细描述


vjson

0.1.0

vjson创建一个对象来序列化jsonschema中指定的唯一类型。它的工作方式类似于json模块。

安装

接下来,执行命令。:

$ pip install vjson

如何使用

使用jsonschema定义对象。:

>>> import vjson
>>> _json = vjson.ValidatedJSON({
... 'type': 'object',
... 'properties': {
...     'price': {'type': 'number'},
...     'name': {'type': 'string'},
...     },
... })

此对象可以转储/loads()/dump()/load()可序列化对象,如在JSON模块中一样。:

>>> _json.loads('{"name" : "Eggs", "price" : 34.99}')
{'name': 'Eggs', 'price': 34.99}
>>> _json.dumps({"name": "Eggs", "price": 34.99})
'{"name": "Eggs", "price": 34.99}'

如果试图传递违反构造函数中指定的jsonschema的数据,则会引发一个vjson.jsonvalidationerror.:

>>> _json.loads('{"name" : "Eggs", "price" : "34.99"}')
Traceback (most recent call last):
  File "/tmp/test/var/src/develop/vjson/src/vjson/__init__.py", line 32, in _wrap
    jsonschema.validate(data, schema)
  File "/tmp/test/env/lib/python3.4/site-packages/jsonschema/validators.py", line 478, in validate
    cls(schema, *args, **kwargs).validate(instance)
  File "/tmp/test/env/lib/python3.4/site-packages/jsonschema/validators.py", line 123, in validate
    raise error
jsonschema.exceptions.ValidationError: '34.99' is not of type 'number'

Failed validating 'type' in schema['properties']['price']:
    {'type': 'number'}

On instance['price']:
    '34.99'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/tmp/test/var/src/develop/vjson/src/vjson/__init__.py", line 34, in _wrap
    raise JSONValidationError(err)
vjson.JSONValidationError: '34.99' is not of type 'number'

Failed validating 'type' in schema['properties']['price']:
    {'type': 'number'}

On instance['price']:
    '34.99'
>>>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用唯一的按钮标签单击按钮   代码生成如何使用Java codeModel为数组的特定索引赋值   java如何批量执行Camel SQL插入   java iText 7将ltv添加到现有签名   内存管理Java应用程序突然停止几天后(810)   带MySQL的java注册表单JavaFX在intellij中失败   如何使用eclipse为windows azure java项目启用远程调试   一种通用的java输入输出设计模式   java Android XML(RSS)忽略引号(“”)   java帮助:安卓中的8 X 10 2维按钮数组   java启动Android项目   JWrapper构建java应用程序   java如何在Android应用程序中设置基于日期/时间的默认页面加载?   java循环程序在完成后返回到起点   java Hibernate:更好的整体类还是多类映射?   回溯数独解算器的递归问题[Java]   java查找类用法   java如何在SpringWebFlow中将多个模型绑定到一个视图?