使用python将嵌套json文件更改为数据帧

使用python将嵌套json文件更改为数据帧,python,json,list,list-comprehension,Python,Json,List,List Comprehension,我有一个json文件,如下所示,我想将其转换为数据帧。这是API LinkedIn的输出示例,我想将其转换为数据帧,以便以csv格式保存。问题是json文件是嵌套的,我找不到直接的方法来实现这一点 { "paging": { "count": 10, "start": 0 }, "elements": [ { "organization": &quo

我有一个json文件,如下所示,我想将其转换为数据帧。这是API LinkedIn的输出示例,我想将其转换为数据帧,以便以csv格式保存。问题是json文件是嵌套的,我找不到直接的方法来实现这一点

{
  "paging": {
    "count": 10,
    "start": 0
  },
  "elements": [
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451606400000,
        "end": 1451692800000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451692800000,
        "end": 1451779200000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451779200000,
        "end": 1451865600000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451865600000,
        "end": 1451952000000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451952000000,
        "end": 1452038400000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1452038400000,
        "end": 1452124800000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1452124800000,
        "end": 1452211200000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          }
        }
      }
    }
  ]
}

我对python中的列表理解非常陌生,我希望有人能帮助我将其转换为数据帧。

您可以使用pandas中的json\u规范化和max\u级别的嵌套json

from pandas import json_normalize
d_ = [
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451606400000,
        "end": 1451692800000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451692800000,
        "end": 1451779200000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451779200000,
        "end": 1451865600000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451865600000,
        "end": 1451952000000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1451952000000,
        "end": 1452038400000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1452038400000,
        "end": 1452124800000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          }
        }
      }
    },
    {
      "organization": "urn:li:organization:1000",
      "timeRange": {
        "start": 1452124800000,
        "end": 1452211200000
      },
      "totalPageStatistics": {
        "clicks": {
          "careersPageClicks": {
            "careersPageBannerPromoClicks": 0,
            "careersPagePromoLinksClicks": 0,
            "careersPageEmployeesClicks": 0,
            "careersPageJobsClicks": 0
          }
        },
        "views": {
          "careersPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "overviewPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          },
          "allPageViews": {
            "uniquePageViews": 0,
            "pageViews": 0
          }
        }
      }
    }
  ]
# }

df = json_normalize(d_, max_level=2)
print(df)

这回答了你的问题吗?为什么在将json转换为dataframe时需要列表理解?您可以发布预期的输出吗?但在这样做时我遇到的一个问题是,我必须通过将json包含到[]中来将其转换为列表。有没有办法转换json文件而不使用[],而是使用类似.tolist()的东西。这在我的例子中不起作用,但我只是想知道是否可以直接将json_normalize函数应用于json变量?