首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中解压缩嵌套字典列表

在python中解压缩嵌套字典列表
EN

Stack Overflow用户
提问于 2017-10-26 09:04:34
回答 1查看 615关注 0票数 1

如果有人能提出一种更为毕不过的方法来处理以下问题,我将不胜感激:

问题:我将json对象解析为python ()。我遇到的问题是json对象结构是字典列表(Dict1)。这些字典包含一本字典(Dict2)。

我想解析dict1的所有内容,并将dict2的内容合并到dict1中。

之后,我想把它解析成熊猫。

代码语言:javascript
复制
json_object = {
  "data": [{
      "complete": "true",
      "data_two": {
        "a": "5",
        "b": "6",
        "c": "6",
        "d": "8"
      },
      "time": "2016-10-17",
      "End_number": 2
    },
    {
      "complete": "true",
      "data_two": {
        "a": "11",
        "b": "21",
        "c": "31",
        "d": "41"
      },
      "time": "2016-10-17",
      "End_number": 1
    }
  ],
  "Location": "DE",
  "End Zone": 5
}

我的尝试:

代码语言:javascript
复制
    dataList =  json_object['data']  
    Unpacked_Data =   [(d['time'],d['End_number'], d['data_two'].keys(),d['data_two'].values()) for d in dataList]

Unpacked_Data是现在包含的元组列表(时间、end_number、键列表、值列表)。

要在Pandas dataframe中使用这一点,我需要在我的tuple中解压这两个列表。->有一种简单的方法在元组中打开列表吗?

是否有更好和更优雅/毕达通的方法来处理这个问题?

谢谢,12

EN

回答 1

Stack Overflow用户

发布于 2017-10-26 09:09:36

一种方法(使用pandas)是首先将所有内容放入数据框架中,然后将pd.Series应用于其中:

代码语言:javascript
复制
df = pd.DataFrame(Unpacked_Data)
unpacked0 = df[2].apply(lambda x: pd.Series(list(x)))
unpacked1 = df[3].apply(lambda x: pd.Series(list(x)))
pd.concat((df[[0,1]],unpacked0,unpacked1))

另一种方法是使用列表理解和理解力:

代码语言:javascript
复制
df = pd.DataFrame([[a,b,*c,*d] for a,b,c,d in Unpacked_Data])

但是,如果打包列表长度不相同,则第二种方法可能不会按照您希望的方式排列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46950078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档