将带有嵌套字典的 json 响应转换为 pandas 数据框

我有一个 json 响应,看起来像这样:


d={'results':[

    {'key1':'1','key2':'item1'},

    {'key1':'1','key2':{

            'subkey20':[

                    {'subkey201':'val', 

                    'subkey202':val,

                    'subkey203':'val',

                    'subkey204':'value'},

                    {'subkey201':'val',

                    'subkey202':val,

                    'subkey203':'val',

                    'subkey204':'value'},

                    {'subkey201':'val',

                    'subkey202':val,

                    'subkey203':'val',

                    'subkey204':'value'},

                    {'subkey201':'val',

                    'subkey202':val,

                    'subkey203':'val',

                    'subkey204':'value'}]}},

    {'key1':'1','key2':'item1'},

    {'key1':'1','key2':{

            'subkey20':[

                    {'subkey201':'val', 

                    'subkey202':val,

                    'subkey203':'val',

                    'subkey204':'value'},

                    {'subkey201':'val',

                    'subkey202':val,

                    'subkey203':'val',

                    'subkey204':'value'},

                    {'subkey201':'val',

                    'subkey202':val,

                    'subkey203':'val',

                    'subkey204':'value'},

                    {'subkey201':'val',

                    'subkey202':val,

                    'subkey203':'val',

                    'subkey204':'value'}]}},]}

我目前正在将其处理成一个 pandas 数据框,每个键从 key1 开始代表 pandas 数据框中的一列。到目前为止,我只能做:


    df = pd.concat([pd.DataFrame(v) for k,v in d.items()], keys=d)

    print (df)

这不会产生我想要的结果。我能否获得有关如何浏览此内容并获取所有键作为列和值填充的熊猫数据框的帮助?


我确实尝试过使用 json_normalize 但是它将子键作为值而不是单独的列处理到 key2 列中。


喵喔喔
浏览 112回答 1
1回答

MM们

json_normalize()是工具。只需将它与一个一起使用两次explode()pd.json_normalize(pd.json_normalize(d["results"]).explode("key2.subkey20").to_dict(orient="records"))输出key1   key2  key2.subkey20 key2.subkey20.subkey201 key2.subkey20.subkey202 key2.subkey20.subkey203 key2.subkey20.subkey204   1  item1            NaN                     NaN                     NaN                     NaN                     NaN   1    NaN            NaN                     val                     val                     val                   value   1    NaN            NaN                     val                     val                     val                   value   1    NaN            NaN                     val                     val                     val                   value   1    NaN            NaN                     val                     val                     val                   value   1  item1            NaN                     NaN                     NaN                     NaN                     NaN   1    NaN            NaN                     val                     val                     val                   value   1    NaN            NaN                     val                     val                     val                   value   1    NaN            NaN                     val                     val                     val                   value   1    NaN            NaN                     val                     val                     val                   value
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python