获取包含内部元素的JSON根元素

2024-09-29 21:42:27 发布

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

编辑:它不应该输出“notThis”,因为它没有内部元素。在

编辑:这篇文章并不重复,因为它要求解析内部元素,并且只要求解析没有内部元素的元素。在

我想把JSON数组的根元素放在一个单独的数组中。因此,我还想解析它的内部元素的名称,并将它们放入一个包含内部元素数组的数组中。在

请参见以下示例:

[
  {
    "firstRoot": {
      "firstInner1": "test",
      "secondInner1": "test"
    }
  },
  {
    "secondRoot": {
      "firstInner2": "test",
      "secondInner2": "test"
    }
  },
  {
    "thirdRoot": {
      "firstInner3": "test",
      "secondInner3": "test"
    }
  }, {"notThis" : "test"}
]

期望输出: 包含所有根元素名称的数组:

^{pr2}$

一些带有内部元素的数组:

[["firstInner1","secondInner1"],["firstInner2","secondInner2"],["firstInner3","secondInner3"]]

所以没有“notThis”元素,因为它没有内部元素。在


Tags: test名称json元素编辑示例数组篇文章
2条回答

像这样的?可能不是最佳的解决方案。

#Load JSON
json_str = '[{"firstRoot":{"firstInner1":"test","secondInner1":"test"}},{"secondRoot":{"firstInner2":"test","secondInner2":"test"}},{"thirdRoot":{"firstInner3":"test","secondInner3":"test"}}]'
dic = json.loads(json_str)

#Output arrays
root_ele = []
inner_ele = []

#Parse JSON
for i in dic:
    root_ele.append(list(i.keys())[0])
    y = [k for j in list(i.values()) for k, l in j.items()]
    inner_ele.append(y)

#Print output
print(root_ele)
print(inner_ele)

输出:

^{pr2}$

我会将lambda映射到json条目上:

json_dict = {...}
list(map(lambda j: list(j.keys())[0], json_dict))
# ['firstRoot', 'secondRoot', 'thirdRoot']

相关问题 更多 >

    热门问题