我现在已经将当前的问题添加到GitHib中。请查找回购的URL。我有一个Jupyter笔记本,也解释了这个问题。伙计们,谢谢。在
https://github.com/simongraham/dataExplore.git
我目前正在为一个项目处理营养数据,其中的数据是原始JSON格式的,我希望使用python和pandas来获得一个可以理解的数据框架。我知道当JSON不是嵌套的时候,这是一个简单的任务。在这里我将使用:
nutrition = pd.read_json('data')
然而,我有嵌套的信息,我发现很难将其放入一个合理的数据框架中。JSON格式如下,其中nutritionnutritions元素本身是一个嵌套元素。这个元素的巢穴将描述各种不同事物的营养成分,如酒精和bcfa,包括在内。我只包含了一个示例,因为这是一个大数据文件。在
^{pr2}$任何帮助都将不胜感激。在
谢谢。在
。。。。 .... 在
现在,我已经了解了如何使用json\u normalize解决这个问题,我返回了相同的问题,但这次我的代码嵌套了两次。即:
[
{
...
}
[,
"nutritionPortions": [
{
"vcNutritionPortionId": "478d1905-f264-4d9b-ab76-0ed4252193fd",
"vcNutritionId": "2476378b-79ee-4857-a81d-489661a039a1",
"vcUserId": "cc51145b-5a70-4344-9b55-1a4455f0a9d2",
"vcPortionId": "1",
"vcPortionName": "1 average pepper",
"vcPortionSize": "20",
"ftEnergyKcal": 5.2,
"vcPortionUnit": "g",
"dtConsumedDate": "2016-05-04T00:00:00",
"nutritionNutrients": [
{
"vcNutritionPortionId": "478d1905-f264-4d9b-ab76-0ed4252193fd",
"vcNutrient": "alcohol",
"ftValue": 0,
"vcUnit": "g",
"nPercentRI": 0,
"vcTrafficLight": ""
},
{
"vcNutritionPortionId": "478d1905-f264-4d9b-ab76-0ed4252193fd",
"vcNutrient": "bcfa",
"ftValue": 0,
"vcUnit": "g",
"nPercentRI": 0,
"vcTrafficLight": ""
},
{
"vcNutritionPortionId": "478d1905-f264-4d9b-ab76-0ed4252193fd",
"vcNutrient": "biotin",
"ftValue": 0,
"vcUnit": "µg",
"nPercentRI": 0,
"vcTrafficLight": ""
},
...
}
]
}
]
当我有一个只包含营养数据的JSON时,我可以使用:
nutrition = (pd.io
.json
.json_normalize((data, ['nutritionPortions']), 'nutritionNutrients',
['vcNutritionId','vcUserId','vcPortionId','vcPortionName','vcPortionSize',
'ftEnergyKcal','vcPortionUnit','dtConsumedDate'])
)
然而,我的数据不仅包含营养信息。例如,它将包含活动信息,因此营养信息在一开始就嵌套在“营养部分”中。假设所有其他列不是嵌套的,它们由“活动”和“幸福”表示。在
如果我使用代码:
nutrition = (pd.io
.json
.json_normalize(data, ['nutritionPortions'])
)
我将回到原来的问题,即“营养营养素”是嵌套的,但我没有成功地获得相应的数据框架。在
谢谢
更新:这应该适用于您的
kaidoData.json
文件:PS我不知道“ftEnergyKcal”有什么问题-它让我:
可能是在某些区域丢失了
旧答案:
使用json_normalize():
^{pr2}$演示:
其中
l
是您的列表(解析的JSON)相关问题 更多 >
编程相关推荐