使用Python的嵌套JSON到CSV设计

使用Python的嵌套JSON到CSV设计,python,Python,我是Python新手,正在尝试找出一个需要将嵌套的JSON解析为CSV的需求 请注意,“顶部”路径在某些情况下还选择了多个对象。因此,对于每个由“paths”构造函数选项匹配的顶级对象,我们得到“m*n”行,其中“m”是“batters.batter”子路径的匹配数,“n”是“topping”子路径的匹配数 JSON: 代码: 获取意外输出: "item_item_batters_batter_0_id","item_item_batters_batter_0_type","item_item_

我是Python新手,正在尝试找出一个需要将嵌套的JSON解析为CSV的需求

请注意,“顶部”路径在某些情况下还选择了多个对象。因此,对于每个由“paths”构造函数选项匹配的顶级对象,我们得到“m*n”行,其中“m”是“batters.batter”子路径的匹配数,“n”是“topping”子路径的匹配数

JSON:

代码:

获取意外输出:

"item_item_batters_batter_0_id","item_item_batters_batter_0_type","item_item_batters_batter_1_id","item_item_batters_batter_1_type","item_item_batters_batter_2_id","item_item_batters_batter_2_type","item_item_batters_batter_3_id","item_item_batters_batter_3_type","item_item_id","item_item_name","item_item_ppu","item_item_topping_0_id","item_item_topping_0_type","item_item_topping_1_id","item_item_topping_1_type","item_item_topping_2_id","item_item_topping_2_type","item_item_topping_3_id","item_item_topping_3_type","item_item_topping_4_id","item_item_topping_4_type","item_item_topping_5_id","item_item_topping_5_type","item_item_topping_6_id","item_item_topping_6_type","item_item_type"

"1001","Regular","1002","Chocolate","1003","Blueberry","1004","Devil's Food","0001","Cake","0.55","5001","None","5002","Glazed","5005","Sugar","5007","Powdered Sugar","5006","Chocolate with Sprinkles","5003","Chocolate","5004","Maple","donut"
我想要预期的输出:

id  type    name    batter  topping
0001    donut   Cake    Regular None
0001    donut   Cake    Regular Glazed
0001    donut   Cake    Regular Sugar
0001    donut   Cake    Regular Powdered Sugar
0001    donut   Cake    Regular Chocolate with Sprinkles
0001    donut   Cake    Regular Chocolate
0001    donut   Cake    Regular Maple
0001    donut   Cake    Chocolate   None
0001    donut   Cake    Chocolate   Glazed
0001    donut   Cake    Chocolate   Sugar
0001    donut   Cake    Chocolate   Powdered Sugar
0001    donut   Cake    Chocolate   Chocolate with Sprinkles
0001    donut   Cake    Chocolate   Chocolate
0001    donut   Cake    Chocolate   Maple
0001    donut   Cake    Blueberry   None
0001    donut   Cake    Blueberry   Glazed
0001    donut   Cake    Blueberry   Sugar
0001    donut   Cake    Blueberry   Powdered Sugar
0001    donut   Cake    Blueberry   Chocolate with Sprinkles
0001    donut   Cake    Blueberry   Chocolate
0001    donut   Cake    Blueberry   Maple
0001    donut   Cake    Devil's Food    None
0001    donut   Cake    Devil's Food    Glazed
0001    donut   Cake    Devil's Food    Sugar
0001    donut   Cake    Devil's Food    Powdered Sugar
0001    donut   Cake    Devil's Food    Chocolate with Sprinkles
0001    donut   Cake    Devil's Food    Chocolate
0001    donut   Cake    Devil's Food    Maple
0002    donut   Raised  Regular None
0002    donut   Raised  Regular Glazed
0002    donut   Raised  Regular Sugar
0002    donut   Raised  Regular Chocolate
0002    donut   Raised  Regular Maple
0003    donut   Old Fashioned   Regular None
0003    donut   Old Fashioned   Regular Glazed
0003    donut   Old Fashioned   Regular Chocolate
0003    donut   Old Fashioned   Regular Maple
0003    donut   Old Fashioned   Chocolate   None
0003    donut   Old Fashioned   Chocolate   Glazed
0003    donut   Old Fashioned   Chocolate   Chocolate
0003    donut   Old Fashioned   Chocolate   Maple
0004    bar Bar Regular Chocolate
0004    bar Bar Regular Maple
0005    twist   Twist   Regular Glazed
0005    twist   Twist   Regular Sugar
0006    filled  Filled  Regular Glazed
0006    filled  Filled  Regular Powdered Sugar
0006    filled  Filled  Regular Chocolate
0006    filled  Filled  Regular Maple

为JSON嵌套输入格式制作自己的CSV转换器。为JSON嵌套输入格式制作自己的CSV转换器。
C:\Users\user1>python C:/Users/user1/PycharmProjects/pro1/venv/file3.py item D:/jsonfile1.json D:/filecsv2.csv
Just completed writing csv file with 26 columns
"item_item_batters_batter_0_id","item_item_batters_batter_0_type","item_item_batters_batter_1_id","item_item_batters_batter_1_type","item_item_batters_batter_2_id","item_item_batters_batter_2_type","item_item_batters_batter_3_id","item_item_batters_batter_3_type","item_item_id","item_item_name","item_item_ppu","item_item_topping_0_id","item_item_topping_0_type","item_item_topping_1_id","item_item_topping_1_type","item_item_topping_2_id","item_item_topping_2_type","item_item_topping_3_id","item_item_topping_3_type","item_item_topping_4_id","item_item_topping_4_type","item_item_topping_5_id","item_item_topping_5_type","item_item_topping_6_id","item_item_topping_6_type","item_item_type"

"1001","Regular","1002","Chocolate","1003","Blueberry","1004","Devil's Food","0001","Cake","0.55","5001","None","5002","Glazed","5005","Sugar","5007","Powdered Sugar","5006","Chocolate with Sprinkles","5003","Chocolate","5004","Maple","donut"
id  type    name    batter  topping
0001    donut   Cake    Regular None
0001    donut   Cake    Regular Glazed
0001    donut   Cake    Regular Sugar
0001    donut   Cake    Regular Powdered Sugar
0001    donut   Cake    Regular Chocolate with Sprinkles
0001    donut   Cake    Regular Chocolate
0001    donut   Cake    Regular Maple
0001    donut   Cake    Chocolate   None
0001    donut   Cake    Chocolate   Glazed
0001    donut   Cake    Chocolate   Sugar
0001    donut   Cake    Chocolate   Powdered Sugar
0001    donut   Cake    Chocolate   Chocolate with Sprinkles
0001    donut   Cake    Chocolate   Chocolate
0001    donut   Cake    Chocolate   Maple
0001    donut   Cake    Blueberry   None
0001    donut   Cake    Blueberry   Glazed
0001    donut   Cake    Blueberry   Sugar
0001    donut   Cake    Blueberry   Powdered Sugar
0001    donut   Cake    Blueberry   Chocolate with Sprinkles
0001    donut   Cake    Blueberry   Chocolate
0001    donut   Cake    Blueberry   Maple
0001    donut   Cake    Devil's Food    None
0001    donut   Cake    Devil's Food    Glazed
0001    donut   Cake    Devil's Food    Sugar
0001    donut   Cake    Devil's Food    Powdered Sugar
0001    donut   Cake    Devil's Food    Chocolate with Sprinkles
0001    donut   Cake    Devil's Food    Chocolate
0001    donut   Cake    Devil's Food    Maple
0002    donut   Raised  Regular None
0002    donut   Raised  Regular Glazed
0002    donut   Raised  Regular Sugar
0002    donut   Raised  Regular Chocolate
0002    donut   Raised  Regular Maple
0003    donut   Old Fashioned   Regular None
0003    donut   Old Fashioned   Regular Glazed
0003    donut   Old Fashioned   Regular Chocolate
0003    donut   Old Fashioned   Regular Maple
0003    donut   Old Fashioned   Chocolate   None
0003    donut   Old Fashioned   Chocolate   Glazed
0003    donut   Old Fashioned   Chocolate   Chocolate
0003    donut   Old Fashioned   Chocolate   Maple
0004    bar Bar Regular Chocolate
0004    bar Bar Regular Maple
0005    twist   Twist   Regular Glazed
0005    twist   Twist   Regular Sugar
0006    filled  Filled  Regular Glazed
0006    filled  Filled  Regular Powdered Sugar
0006    filled  Filled  Regular Chocolate
0006    filled  Filled  Regular Maple