使用python将嵌套json文件更改为数据帧
我有一个json文件,如下所示,我想将其转换为数据帧。这是API LinkedIn的输出示例,我想将其转换为数据帧,以便以csv格式保存。问题是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
{
"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变量?