专栏名称: 编程派
Python程序员都在看的公众号,跟着编程派一起学习Python,看最新国外教程和资源!
目录
相关文章推荐
51好读  ›  专栏  ›  编程派

骚操作!嵌套 JSON 秒变 Dataframe!

编程派  · 公众号  · Python  · 2020-11-15 11:40

正文

请到「今天看啥」查看全文


  • summary:第二级的“字段”对象。

  • status name:第三级位置。

  • statusCategory name:位于第4个嵌套级别。

  • 如上,我们选择要提取的字段在issues列表内的JSON结构中分别处于4个不同的嵌套级别,一环扣一环。

    {
      "expand""schema,names",
      "issues": [
        {
          "fields": {
            "issuetype": {
              "avatarId"10300,
              "description""",
              "id""10005",
              "name""New Feature",
              "subtask": False
            },
            "status": {
              "description""A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.",
              "id""5",
              "name""Resolved",
              "statusCategory": {
                "colorName""green",
                "id"3,
                "key""done",
                "name""Done",
              }
            },
            "summary""Recovered data collection Defraglar $MFT problem"
          },
          "id""11861",
          "key""CAE-160",
        },
        {
          "fields": { 
    ... more issues],
      "maxResults"5,
      "startAt"0,
      "total"160
    }


    一个不太好的解决方案

    一种选择是直接撸码,写一个查找特定字段的函数,但问题是必须对每个嵌套字段调用此函数,然后再调用.apply到DataFrame中的新列。

    为获取我们想要的几个字段,首先我们提取fields键内的对象至列:

    df = (
        df["fields"]
        .apply(pd.Series)
        .merge(df, left_index=True, right_index = True)







    请到「今天看啥」查看全文