熊猫的json_normalize在递归嵌套的json中

2024-10-02 18:19:00 发布

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

我有一个具有深度嵌套递归结构的json文件:

{"children": [ 
              "val" = x
              "data" = y
              "children": [{ 
                           "val" = x
                           "data" = y
                           "children": [{ 
                                         ....
              "val" = x
              "data" = y
              "children": [{ 
                           "val" = x
                           "data" = y
                           "children": [{ 
                                         ....

使用pandasjson_normalize如下:

^{pr2}$

给出dataframe,其中第一级被展平,但较深的级别在dataframe中仍然是json字符串。在

如何使我的数据帧扁平化,使整个json树被解压和展平?在


Tags: 文件数据字符串jsondataframedataval级别
1条回答
网友
1楼 · 发布于 2024-10-02 18:19:00

如果您的json格式良好,并且在所有级别都具有相同的结构,那么您可以通过向每个级别的json规范化传递一个列表来提取所有数据。在

json = {'children': [{
          'val': 1,
          'data': 2,
          'children': [{
                       'val': 3,
                       'data' : 4,
                       'children': [{'val' : 4,
                                     'data' : 5}],
                       }],
          },{
          'val' : 6,
          'data' : 7,
          'children': [{
                       'val' : 8,
                       'data' : 9,
                       'children': [{'val' : 10,
                                     'data' : 11}],
                       }]
          }]}

for i in range(1,3):
    print( json_normalize(data = json,record_path=['children']*i) )

这将给出以下输出,如果需要,可以递归地将其添加到单个数据帧中。在

^{pr2}$

相关问题 更多 >