在python中规范化复杂Json
我试图使用pandas规范化json函数,但无法扁平化json中的嵌套数组 我试着阅读其中一个示例,但它只给出了一条使用此代码的记录在python中规范化复杂Json,python,json,pandas,Python,Json,Pandas,我试图使用pandas规范化json函数,但无法扁平化json中的嵌套数组 我试着阅读其中一个示例,但它只给出了一条使用此代码的记录 from pandas.io.json import json_normalize data ={ "id":"001", "counties" : [ {"name":"y"},{"name":"X"}], "extendedDescriptionFrench" : "Fromage Brick Petit Gaspesien", "brand" :
from pandas.io.json import json_normalize
data ={
"id":"001",
"counties" : [ {"name":"y"},{"name":"X"}],
"extendedDescriptionFrench" : "Fromage Brick Petit Gaspesien",
"brand" : "PETIT GASPESIEN",
"brandFrench" : "PETIT GASPESIEN",
"productLife" : "90",
"digitalAssetFoodservice" : [ {
"digitalAssetFormatFoodservice" : "JPG",
"digitalAssetGDTIFoodservice" : "754000000016500000000002167445",
"digitalAssetImageVersionDateTimeFoodservice" : "2016-06-28T20:06:06.000-04:00",
"digitalAssetStateFoodservice" : "P"
}, {
"digitalAssetFormatFoodservice" : "JPG",
"digitalAssetGDTIFoodservice" : "754000000016500000000002167597",
"digitalAssetImageTypeFoodservice" : "M",
"digitalAssetImageVersionDateTimeFoodservice" : "2016-06-28T20:06:06.000-04:00"
}, {
"digitalAssetFormatFoodservice" : "JPG",
"digitalAssetGDTIFoodservice" : "754000000016500000000002167687",
"digitalAssetImageTypeFoodservice" : "C",
"digitalAssetImageVersionDateTimeFoodservice" : "2016-06-28T20:06:06.000-04:00",
"digitalAssetStateFoodservice" : "C"
} ]
}
a=json_normalize(data)
print(a)
是否有办法将“digitalAssetFoodservice”数组展平为列
这是我得到的输出
还有,如果我有多个嵌套数组字段,我认为需要将嵌套数组的键与非嵌套数组的键一起传递
a=json_normalize(data,'digitalAssetFoodservice',['id','extendedDescriptionFrench','brand','productLife'])
print(a)
print(a.columns)
输出:
在审理两个案件时:
这是我想到的,因为我找不到一种方法在一行中生成您的预期输出。我还对脚本做了一些修改,使其更容易。(基于:“问题:您的预期输出是什么?每次重复,一次用于name:x,一次用于name:y?OP:yes,重复”
输出:
name id eDF brand brandFrench productLife
0 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
1 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
dAFF dAGDTIF dAIVDTF dASF dAITFa dAITF id eDF brand brandFrench productLife
0 JPG 75401652167445 2016-06-28 P NaN NaN 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
1 JPG 75401652167597 2016-06-28 NaN M NaN 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
2 JPG 7540162167687 2016-06-28 C NaN C 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
name id eDF brand brandFrench productLife dAFF dAGDTIF dAIVDTF dASF dAITFa dAITF
0 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167445 2016-06-28 P NaN NaN
1 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167597 2016-06-28 NaN M NaN
2 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 7540162167687 2016-06-28 C NaN C
3 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167445 2016-06-28 P NaN NaN
4 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167597 2016-06-28 NaN M NaN
5 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 7540162167687 2016-06-28 C NaN C
现在另一个b
:
print(b)
输出:
name id eDF brand brandFrench productLife
0 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
1 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
dAFF dAGDTIF dAIVDTF dASF dAITFa dAITF id eDF brand brandFrench productLife
0 JPG 75401652167445 2016-06-28 P NaN NaN 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
1 JPG 75401652167597 2016-06-28 NaN M NaN 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
2 JPG 7540162167687 2016-06-28 C NaN C 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
name id eDF brand brandFrench productLife dAFF dAGDTIF dAIVDTF dASF dAITFa dAITF
0 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167445 2016-06-28 P NaN NaN
1 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167597 2016-06-28 NaN M NaN
2 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 7540162167687 2016-06-28 C NaN C
3 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167445 2016-06-28 P NaN NaN
4 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167597 2016-06-28 NaN M NaN
5 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 7540162167687 2016-06-28 C NaN C
最后c
:
print(c)
输出:
name id eDF brand brandFrench productLife
0 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
1 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
dAFF dAGDTIF dAIVDTF dASF dAITFa dAITF id eDF brand brandFrench productLife
0 JPG 75401652167445 2016-06-28 P NaN NaN 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
1 JPG 75401652167597 2016-06-28 NaN M NaN 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
2 JPG 7540162167687 2016-06-28 C NaN C 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90
name id eDF brand brandFrench productLife dAFF dAGDTIF dAIVDTF dASF dAITFa dAITF
0 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167445 2016-06-28 P NaN NaN
1 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167597 2016-06-28 NaN M NaN
2 y 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 7540162167687 2016-06-28 C NaN C
3 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167445 2016-06-28 P NaN NaN
4 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 75401652167597 2016-06-28 NaN M NaN
5 X 001 Fromage Brick Petit Gaspesien PETIT GASPESIEN PETIT GASPESIEN 90 JPG 7540162167687 2016-06-28 C NaN C
您打算做什么,什么不起作用?关于
a=json\u normalize(data[“digitalAssetFoodservice”])的输出呢
?我们是否可以规范化并输出此字段+其他标量字段,因为我希望整个json都被规范化?您是否可以添加一个多个嵌套数组字段的示例,因为如果它们不匹配相同的索引(我理解您的意思),将它们附加到表中是不合适的@CeliusStingher编辑了我的JSON:include“countries”filedHowever,您期望的输出是什么?每次重复一次,一次用于name:x
,一次用于name:y
?我还可以在json\u normalize函数中传递其他嵌套数组字段吗?是的,编辑您的问题,我将相应地编辑我的asnwer。好的,对于每个嵌套字段,我们必须创建另一个变量,然后合并altoget她的权利使用内部权利?我只是找不到一种方法在一行中使用它,我一直在尝试搜索一些示例,也无法使lostCode的答案起作用。您可以在这里尝试,也许您可以找到一些东西,但它不一样,我希望我的答案足够有帮助,帮助您解决问题。是的,它很有用,谢谢:)