声明性json数据解析管道

crispum的Python项目详细描述


crispum
==


跨语言声明性解析管道。


installation
----

节点:``npm i crispum--save`
python:``pip install crispum`,或者如果你很聪明的话,使用crispum可以接收静态JSON模式对象并返回一个解析器函数,该函数将应用schema对象中列出的所有转换;https://github.com/bendrucker/obstruction>;``示例。

…代码::json

{
“type”:“simple”、
“keys”:{
“everyly”:“awesome”
}
}


此架构将转换以下对象……

代码::json

{
“棒极了”:“它工作了!”
}


代码::json

{
“确实”:“它工作了!”
}


架构也可以是一个指令数组,并且可以将
指令应用于整个对象或数组的每个元素。

代码::json

[{
“type”:“cluck”,
“key”:“确实”
},{
“type”:“array”
},{
“type”:“conditional”,
“key”:“foo”,
“default”:{
“type”:“filter”
,“options”:{
“bar”:{
“type”:“cluck”,
“key”:“nested”
},
“baz”:{
“type”:“cluck”,
“key”:“special”
}
}
},{
“type”:“dearray”
},{
“type”:“simple”,
“keys”:{
“result”:“0”,
“extra”:“1”
}
}


这会产生一个复杂的多步骤模式,当应用于数据时,它会像这样…

代码::json

{
“extra”:“哦嘿”、
“确实”:[{
“foo”:“bar”、
“nested”:“value”
}、{
“foo”:“boozle”、
“nested”:“lost in space”
}、{
“foo”:“baz”、
“nested”:“value”,
“特殊”:“所以巴兹”
}
}


代码::json

{
“result”:“value”
“extra”:“so bazzy”
>

API
==




``crispum(schema)` ` `->;``函数(数据)` ` ` `
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^是的返回的parse
方法接受一个参数,即输入数据,并返回转换后的数据。


schema
~~~~

*必选*
类型:``object``或``array`

schema可以是单个指令或它们的数组。每个
指令都必须有一个“type`”,并且可以选择包含一个
``array``字段。

当前数据将被重新解释为
数组,每条指令将在条目上执行,而不是
列表本身。


它还可以接受
可选参数`` keys``

``keys``是一个要从数据复制到
数组的每个元素中的键的列表,然后再在管道上继续

conditional
^^^^^^^^^^^^^^^^


conditional指令查看指定键的值,然后根据找到的值执行不同的指令。

-``key`:它们检查条件与
-``default``的键名:如果找到的值不在
options列表中,则为默认指令:
-``options`:指令选项的关联数组


dearray
^^^^^^^^^

停止数组管道并返回到将数据解释为
整体而不是e每个元素。

filter
^^^^^

这在与“array”和“conditional”结合使用时非常有用,simple
^^^^^^^^


simple onyl接受1个其他参数,即“keys”。键应该是一个有效的“阻塞”schema<;https://github.com/bendrucker/阻塞schema definitions>;``uuuu.
结果与阻塞将生成的输出结果相同,只是没有删除schema中没有提到的额外键。

数据集到它上面。
它接受两个参数\*``key`:要获取并重新定位的键名
当前数据集到\*``keys``:要将
从父对象复制到提取的值中的额外键数组


license
=

mit



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

推荐PyPI第三方库


热门话题
jframe为什么JAVA paint()方法不起作用?   java Guice:将ContainerRequestContext注入拦截器   java如何优雅地关闭Spring JMS MessageListenerAdapter   java如何在Spring中设置快照隔离级别   Java中的安卓平台独立信任存储路径   java无法在eclipse中运行hello world程序   java Sinch空指针问题   使用Java将JSON流式传输到BigQuery   java从“大数据”中选择什么Swing控件?   java通过对象字段过滤/排序集合?   java将数据从活动传递到另一个活动中的片段   java访问打包在jar文件中的文档   Java获取事件的大小。getDragboard()。getFiles()。流()。映射(文件::长度)。toString());   java Android libgdx:启动程序图标按下后,启动屏幕不会立即显示   java如何在Google App Engine灵活环境中配置oracle jdk   java有没有办法减少这些行?   Java:客户端socket不读取第二行,在终止符行之后保持打开状态   java以编程方式获取api 29上的所有APK文件   java ActionBar按钮不显示