从URL解析JSON响应

2024-09-24 10:29:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我的要求是从URL响应解析JSON响应。 JSON提要由两个列表组成,即:

a.“所有权”-此列表将包含两个主要属性

  1. 节点代码
  2. 父代码

b.“节点”-此列表由两个属性组成

  1. NodeCode(NodeCode是每个节点的主要标识符)
  2. NodeType(NodeType的值可以是“LEVEL01”、“LEVEL02”、“LEVEL06”)

逻辑是:

  • 对于“Nodes”中的每个NodeCode值,扫描“Ownerships”列表以获取相关的ParentCode

  • 返回“Nodes”列表,以NodeCode的形式搜索在前面步骤中获得的ParentCode,并获得相应的“NodeType”

  • 重复前面的步骤,直到所有节点代码都被解析,这样在最后您将得到如下内容(所有这些列都将用于单个记录):

    LEVEL01NodeCode LEVEL02NodeCode LEVEL03NodeCode LEVEL04NodeCode LEVEL05NodeCode LEVEL06NodeCode

底线 从最底层(假设LEVEL01)开始,扫描节点和所有者IP列表,得到该层对应的节点代码,并根据ParentCode继续搜索,直到覆盖所有顶层。

这里的问题是: 位于LEVEL01的节点代码可以有一个父代码,该父代码可以位于上述任何一个级别(可以位于LEVEL03、LEVEL04甚至LEVEL06)

如何扁平化这种数据结构?你知道吗

数据结构示例:

{
   "Ownerships":[
      {
         "ParentCode":"XX01",
         "NodeCode":"TT01"
      },
      {
         "ParentCode":"XX02",
         "NodeCode":"TT02"
      }
   ],
   "Nodes":[
      {
         "NodeCode":"TT02",
         "NodeType ":"LEVEL01"
      },
      {
         "NodeCode":"XX02",
         "NodeType ":"LEVEL03"
      },
      {
         "NodeCode":"XX01",
         "NodeType ":"LEVEL05"
      }
   ]
}

Tags: 代码json数据结构列表属性节点步骤nodes