首页 > 解决方案 > 从嵌套字典对象列表创建 DataFrame

问题描述

我在 JSON 文件中有嵌套字典对象的列表。我正在尝试创建此文件的 DataFrame。

这是前 2 个对象:

data= [ {
    "model": "class",
    "pk": 48,
    "fields": {
        "unique_key": "9f030ed1d5e56523",
        "name": "john",
        "follower_count": 2395,
        "profile_image": "  "
}  }  ,{ 
    "model": "class",
    "pk": 49,
    "fields": {
        "unique_key": "0e8256ad7f27270eb",
        "name": "dais",
        "follower_count": 264,
        "profile_image": "   "
} }, .....]

如果我尝试类似:

df = pd.DataFrame(data)

这就是我得到的。

https://d.top4top.net/p_1132pfebn1.png

我正在寻求帮助,我发现了这个,但问题是列表没有 keys() 函数。

标签: pythonpandasdataframe

解决方案


假设您只有 1 级嵌套字典并且您知道键名:

for d in data:
    d.update(d.pop('fields'))

您只需要将元素“弹出”出字典,并在基础级别添加内部键值数据。该update方法将后者作为就地操作执行。

现在您可以使用您期望的列创建您的 pandas 数据框:

In [5]: pd.DataFrame(data)
Out[5]: 
   follower_count  model  name  pk profile_image         unique_key
0            2395  class  john  48                 9f030ed1d5e56523
1             264  class  dais  49                0e8256ad7f27270eb


推荐阅读