使用json树数据以简化工作的库

JsonJ的Python项目详细描述


jsonj

jsonj是一个简单的python库,它允许将复杂的嵌套json树解析为简单的json数据。 此库允许将复杂的嵌套json数据转换为中间的简单json数据,从而更容易处理原始数据。

示例数据转换

########################## FROM #########################################{"menu": {"id": "file",
  "value": "File",
  "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}]}}}###########################  TO #########################################{'menu': {'path': 'menu',
   'isRoot': True,
   'children': ['menu/id', 'menu/value', 'menu/popup']},
  'menu/id': {'path': 'menu/id',
   'isRoot': False,
   'children': []},
            .
            .
            .
  'menu/popup/menuitem/2/value': {'path': 'menu/popup/menuitem/2/value',
   'isRoot': False,
   'children': []},
  'menu/popup/menuitem/2/onclick': {'path': 'menu/popup/menuitem/2/onclick',
   'isRoot': False,
   'children': []}}

如您所见,此转换格式非常优雅,可以应用于各种任务。

转换数据格式说明

            .
            .
            .
'menu/popup/menuitem/2/value': {'path': 'menu/popup/menuitem/2/value',
   'isRoot': False,
   'children': []},
            .
            .
            .
  • 数据的键设置为该特定节点从根节点的路径
  • 每个键都有一个值,而这个值又是一个包含3个参数的简单json。
    • 路径:从根节点到特定节点的路径(与键的路径相同)
    • isroot:要么是根节点要么不是
    • 子节点:特定节点是否有子节点

安装

$ pip3 install JsonJ

使用量

from JsonJ import JsonJ
json= JsonJ(<sample_json_data>)

注意:请确保json数据有效,从现在起,库不会检查数据是否有效,但此验证将很快完成

详细用法

- get_parsed_data() - This function call returns the Intermediate Parsed data
- clean() - This function call clears all the data saved in local variables

发展

想做贡献吗?伟大的! 您所要做的就是请求并开始工作

待办事项

  • 按节点搜索
  • 按值搜索
  • json数据验证器
  • 还有很多事情要做

许可证

麻省理工学院

peace

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

推荐PyPI第三方库


热门话题
java标准API:在具有继承用户权限的树中查找实体   带有Hibernate和注释的java多对多自引用   java如何下载和安装Xugler?   java如何向JFrame JButton添加操作?   java如何安装自定义LAF?   java将旧对象的id分配给新对象将把它作为重复的@ManyToMany插入   java如何从WSDL生成/创建服务端点?   java使用基于iText Core的OpenPdf从pdf页面删除或更新添加的图像图标   java WeakHashMap,具有Long、Int或String等类型   java在JFrame中获取和更改值   java变量在扩展另一个类的类中不可见   地理定位Java和GeoLite数据库:如何使用GeoLiteCity。生产方式中的dat?   java类加载器应该能够解析和加载来自不同包的类吗?   java试图调用虚拟方法Volley Android Api   UDP数据报在Java中仅显示第一个字符