Подскажите как обработать ответ от запроса. Json вложенный в список. Python
При запросе категорий по данному апи:
https://rapidapi.com/apidojo/api/hm-hennes-mauritz
В ответе приходит примерно следующее:
[{"CatName":"Kadın","CategoryValue":"ladies","CategoriesArray":[{"CatName":"Yeni Ürünler","CategoryValue":"new-arrivals","CategoriesArray":[{"CatName":"Hepsini İncele","CategoryValue":"view-all","tagCodes":["ladies_newarrivals_all","ladies_newarrivals"]}...... AND ETC
Весь ответ не стал копировать т.к. он слишком большой, здесь только небольшая часть ответа и она не закончена
Подскажите каким образом можно обработать данную структуру:
[{"CatName" :"Example", "CategoriesArray:[{"CatName" :"Example", "CategoriesArray:[{}] } ]
Просто загрузить при помощи:
request = requests.get()
request = request.text
request = json.loads(request)
Не выходит из-за структуры ответа который находится в [ ]
Думаю pandas должен с этим справиться т.к. по сути здесь список списков, но знаний в pandos у меня нет)
EDITED FOR CrazyElf
Json:
{'CatName': 'Baby', 'CategoryValue': 'baby', 'CategoriesArray': [{'CatName': 'Offers & Deals', 'CategoryValue': 'deals', 'CategoriesArray': [{'CatName': 'Online Offers from $14.99', 'CategoryValue': 'online-offers', 'tagCodes': ['OnlineOffer_W34_Kids', 'OnlineOffer_W34_Baby']}], 'tagCodes': []}, {'CatName': 'Newborn', 'CategoryValue': 'newborn', 'CategoriesArray': [{'CatName': 'View all', 'CategoryValue': 'view-all', 'tagCodes': ['kids_new_born_viewall', 'kids_new_born_viewall']}, {'CatName': 'New Arrivals', 'CategoryValue': 'new-arrivals', 'tagCodes': ['kids_new_born_newarrivals', 'kids_new_born_newarrivals']}, {'CatName': 'Clothing', 'CategoryValue': 'clothing', 'CategoriesArray': [{'CatName': 'Bodysuits', 'CategoryValue': 'bodysuits', 'CategoriesArray': [{'CatName': 'Wrapover Bodysuits', 'CategoryValue': 'wrapover-bodysuits', 'tagCodes': ['kids_new_born_clothing_bodysuits_wrapover', 'kids_new_born_clothing_bodysuits_wrapover']}], 'tagCodes': ['kids_new_born_clothing_bodysuits', 'kids_new_born_clothing_bodysuits']}], 'tagCodes': ['kids_new_born_clothing', 'kids_new_born_clothing']}, {'CatName': 'Outerwear', 'CategoryValue': 'outerwear', 'CategoriesArray': [{'CatName': 'Fleece', 'CategoryValue': 'fleece', 'tagCodes': ['kids_new_born_outerwear_fleece', 'kids_new_born_outerwear_fleece']}], 'tagCodes': ['kids_new_born_outerwear', 'kids_new_born_outerwear']}, {'CatName': 'Accessories', 'CategoryValue': 'accessories', 'tagCodes': ['kids_new_born_accessories', 'kids_new_born_accessories']}, {'CatName': 'Shoes', 'CategoryValue': 'shoes', 'tagCodes': ['kids_new_born_shoes', 'kids_new_born_shoes']}], 'tagCodes': ['kids_new_born_viewall', 'kids_new_born_viewall']}, {'CatName': 'Baby Girl', 'CategoryValue': 'girls', 'CategoriesArray': [{'CatName': 'View all', 'CategoryValue': 'view-all', 'tagCodes': ['kids_baby_girl_viewall', 'kids_baby_girl_viewall']}, {'CatName': 'New Arrivals', 'CategoryValue': 'new-arrivals', 'tagCodes': ['kids_baby_girl_newarrivals', 'kids_baby_girl_newarrivals']}, {'CatName': 'Clothing', 'CategoryValue': 'clothing', 'CategoriesArray': [{'CatName': 'Bodysuits', 'CategoryValue': 'bodysuits', 'CategoriesArray': [{'CatName': 'Wrapover Bodysuits', 'CategoryValue': 'wrapover-bodysuits', 'tagCodes': ['kids_baby_girl_clothing_bodysuits_wrapover', 'kids_baby_girl_clothing_bodysuits_wrapover']}], 'tagCodes': ['kids_baby_girl_clothing_bodysuits', 'kids_baby_girl_clothing_bodysuits']}, {'CatName': 'Jumpsuits & Rompers', 'CategoryValue': 'rompers', 'tagCodes': ['kids_baby_girl_clothing_jumpsuitsplaysuits', 'kids_baby_girl_clothing_jumpsuitsplaysuits']}, {'CatName': 'Sets & Outfits', 'CategoryValue': 'sets-outfits', 'tagCodes': ['kids_baby_girl_setsoutfits', 'kids_baby_girl_setsoutfits']}, {'CatName': 'Tops & T-shirts', 'CategoryValue': 'tops-t-shirts', 'CategoriesArray': [{'CatName': 'T-shirts', 'CategoryValue': 't-shirts', 'tagCodes': ['kids_baby_girl_clothing_tops_tshirts', 'kids_baby_girl_clothing_tops_tshirts']}, {'CatName': 'Blouses', 'CategoryValue': 'blouses', 'tagCodes': ['kids_baby_girl_clothing_tops_blouses', 'kids_baby_girl_clothing_tops_blouses']}, {'CatName': 'Tank Tops', 'CategoryValue': 'tank-tops', 'tagCodes': ['kids_baby_girl_clothing_tops_tanktops', 'kids_baby_girl_clothing_tops_tanktops']}], 'tagCodes': ['kids_baby_girl_clothing_tops', 'kids_baby_girl_clothing_tops']}, {'CatName': 'Sweaters & Sweatshirts', 'CategoryValue': 'jumpers-cardigans', 'CategoriesArray': [{'CatName': 'Sweaters', 'CategoryValue': 'jumpers', 'tagCodes': ['kids_baby_girl_clothing_jumperssweatshirts_jumpers', 'kids_baby_girl_clothing_jumperssweatshirts_jumpers']}, {'CatName': 'Cardigans', 'CategoryValue': 'cardigans', 'tagCodes': ['kids_baby_girl_clothing_jumperssweatshirts_cardigans', 'kids_baby_girl_clothing_jumperssweatshirts_cardigans']}, {'CatName': 'Hoodies', 'CategoryValue': 'hoodies', 'tagCodes': ['kids_baby_girl_clothing_jumperssweatshirts_hoodies', 'kids_baby_girl_clothing_jumperssweatshirts_hoodies']}, {'CatName': 'Sweatshirts', 'CategoryValue': 'sweatshirts', 'tagCodes': ['kids_baby_girl_clothing_jumperssweatshirts_sweatshirts', 'kids_baby_girl_clothing_jumperssweatshirts_sweatshirts']}], 'tagCodes': ['kids_baby_girl_clothing_jumperssweatshirts', 'kids_baby_girl_clothing_jumperssweatshirts']}, {'CatName': 'Pants & Jeans', 'CategoryValue': 'trousers-jeans', 'CategoriesArray': [{'CatName': 'Joggers & Sweatpants', 'CategoryValue': 'joggers-sweatpants', 'tagCodes': ['kids_baby_girl_clothing_trousersjeans_joggerssweatpants', 'kids_baby_girl_clothing_trousersjeans_joggerssweatpants']}, {'CatName': 'Pants', 'CategoryValue': 'trousers', 'tagCodes': ['kids_baby_girl_clothing_trousersjeans_trousers', 'kids_baby_girl_clothing_trousersjeans_trousers']}, {'CatName': 'Leggings', 'CategoryValue': 'leggings', 'tagCodes': ['kids_baby_girl_clothing_trousersjeans_leggingstreggins', 'kids_baby_girl_clothing_trousersjeans_leggingstreggins']}, {'CatName': 'Jeans & Jeggings', 'CategoryValue': 'jeans', 'tagCodes': ['kids_baby_girl_clothing_trousersjeans_jeans', 'kids_baby_girl_clothing_trousersjeans_jeans']}, {'CatName': 'Overalls', 'CategoryValue': 'dungarees', 'tagCodes': ['kids_baby_girl_clothing_trousersjeans_dungarees', 'kids_baby_girl_clothing_trousersjeans_dungarees']}], 'tagCodes': ['kids_baby_girl_clothing_trousersjeans']}, {'CatName': 'Dresses', 'CategoryValue': 'dresses', 'CategoriesArray': [{'CatName': 'Overall Dresses', 'CategoryValue': 'dungaree-dresses', 'tagCodes': ['kids_baby_girl_clothing_dresses_dungareedress', 'kids_baby_girl_clothing_dresses_dungareedress']}], 'tagCodes': ['kids_baby_girl_clothing_dresses', 'kids_baby_girl_clothing_dresses']}, {'CatName': 'Shorts', 'CategoryValue': 'shorts', 'CategoriesArray': [{'CatName': 'Short Overalls', 'CategoryValue': 'dungaree-shorts', 'tagCodes': ['kids_baby_girl_clothing_shorts_dungaree', 'kids_baby_girl_clothing_shorts_dungaree']}], 'tagCodes': ['kids_baby_girl_clothing_shorts', 'kids_baby_girl_clothing_shorts']}, {'CatName': 'Swimwear', 'CategoryValue': 'swimwear', 'tagCodes': ['kids_baby_girl_clothing_swimwear', 'kids_baby_girl_clothing_swimwear']}, {'CatName': 'Sleepwear', 'CategoryValue': 'nightwear', 'CategoriesArray': [{'CatName': 'Sleep Sacks', 'CategoryValue': 'sleeping-bags', 'tagCodes': ['kids_baby_girl_clothing_nightwear_sleepingbags', 'kids_baby_girl_clothing_nightwear_sleepingbags']}], 'tagCodes': ['kids_baby_girl_clothing_nightwear', 'kids_baby_girl_clothing_nightwear']}, {'CatName': 'Socks & Tights', 'CategoryValue': 'socks-tights', 'CategoriesArray': [{'CatName': 'Socks', 'CategoryValue': 'socks', 'tagCodes': ['kids_baby_girl_clothing_sockstights_socks', 'kids_baby_girl_clothing_sockstights_socks']}, {'CatName': 'Tights', 'CategoryValue': 'tights', 'tagCodes': ['kids_baby_girl_clothing_sockstights_tights', 'kids_baby_girl_clothing_sockstights_tights']}], 'tagCodes': ['kids_baby_girl_clothing_sockstights', 'kids_baby_girl_clothing_sockstights']}], 'tagCodes': ['kids_baby_girl_clothing', 'kids_baby_girl_clothing']}, {'CatName': 'Outerwear', 'CategoryValue': 'outerwear', 'CategoriesArray': [{'CatName': 'Fleece', 'CategoryValue': 'fleece', 'tagCodes': ['kids_baby_girl_outerwear_fleece', 'kids_baby_girl_outerwear_fleece']}, {'CatName': 'Jackets & Coats', 'CategoryValue': 'jackets-coats', 'tagCodes': ['kids_baby_girl_outerwear_jacketscoats', 'kids_baby_girl_outerwear_jacketscoats']}], 'tagCodes': ['kids_baby_girl_outerwear', 'kids_baby_girl_outerwear']}, {'CatName': 'Accessories', 'CategoryValue': 'accessories', 'CategoriesArray': [{'CatName': 'Hats', 'CategoryValue': 'hats', 'tagCodes': ['kids_baby_girl_accessories_hats', 'kids_baby_girl_accessories_hats']}, {'CatName': 'Scarves & Gloves', 'CategoryValue': 'scarves-gloves', 'tagCodes': ['kids_baby_girl_accessories_scarvesgloves', 'kids_baby_girl_accessories_scarvesgloves']}, {'CatName': 'Bibs & Bandanas', 'CategoryValue': 'bibs', 'tagCodes': ['kids_baby_girl_accessories_bibs', 'kids_baby_girl_accessories_bibs']}], 'tagCodes': ['kids_baby_girl_accessories', 'kids_baby_girl_accessories']}, {'CatName': 'Shoes', 'CategoryValue': 'shoes', 'CategoriesArray': [{'CatName': 'Sneakers', 'CategoryValue': 'trainers', 'tagCodes': ['kids_baby_girl_shoes_trainers', 'kids_baby_girl_shoes_trainers']}, {'CatName': 'Ballet Flats', 'CategoryValue': 'ballerinas-flats', 'tagCodes': ['kids_baby_girl_shoes_ballerinasflats']}, {'CatName': 'Boots', 'CategoryValue': 'boots', 'tagCodes': ['kids_baby_girl_shoes_boots']}, {'CatName': 'Sandals & Flip-Flops', 'CategoryValue': 'sandals-flip-flops', 'tagCodes': ['kids_baby_girl_shoes_sandalsflipflops']}, {'CatName': 'Slippers', 'CategoryValue': 'slippers', 'tagCodes': ['kids_baby_girl_shoes_slippers']}], 'tagCodes': ['kids_baby_girl_shoes', 'kids_baby_girl_shoes']}], 'tagCodes': ['kids_baby_girl_viewall']}, {'CatName': 'Baby Boy', 'CategoryValue': 'boys', 'CategoriesArray': [{'CatName': 'View all', 'CategoryValue': 'view-all', 'tagCodes': ['kids_baby_boy_viewall', 'kids_baby_boy_viewall']}, {'CatName': 'New Arrivals', 'CategoryValue': 'new-arrivals', 'tagCodes': ['kids_baby_boy_newarrivals', 'kids_baby_boy_newarrivals']}, {'CatName': 'Clothing', 'CategoryValue': 'clothing', 'CategoriesArray': [{'CatName': 'Bodysuits', 'CategoryValue': 'bodysuits', 'CategoriesArray': [{'CatName': 'Wrapover Bodysuits', 'CategoryValue': 'wrapover-bodysuits', 'tagCodes': ['kids_baby_boy_clothing_bodysuits_wrapover', 'kids_baby_boy_clothing_bodysuits_wrapover']}], 'tagCodes': ['kids_baby_boy_clothing_bodysuits', 'kids_baby_boy_clothing_bodysuits']}, {'CatName': 'Jumpsuits & Rompers', 'CategoryValue': 'rompers', 'tagCodes': ['kids_baby_boy_clothing_jumpsuitsplaysuits', 'kids_baby_boy_clothing_jumpsuitsplaysuits']}, {'CatName': 'Sets & Outfits', 'CategoryValue': 'sets-outfits', 'tagCodes': ['kids_baby_boy_setsoutfits', 'kids_baby_boy_setsoutfits']}, {'CatName': 'T-shirts & Shirts', 'CategoryValue': 't-shirts-shirts', 'CategoriesArray': [{'CatName': 'T-shirts', 'CategoryValue': 't-shirts', 'tagCodes': ['kids_baby_boy_clothing_tshirtsshirts_tshirts', 'kids_baby_boy_clothing_tshirtsshirts_tshirts']}, {'CatName': 'Shirts', 'CategoryValue': 'shirts', 'tagCodes': ['kids_baby_boy_clothing_tshirtsshirts_shirts', 'kids_baby_boy_clothing_tshirtsshirts_shirts']}, {'CatName': 'Tank Tops', 'CategoryValue': 'tank-tops', 'tagCodes': ['kids_baby_boy_clothing_tshirtsshirts_tanktops', 'kids_baby_boy_clothing_tshirtsshirts_tanktops']}], 'tagCodes': ['kids_baby_boy_clothing_tshirtsshirts', 'kids_baby_boy_clothing_tshirtsshirts']}, {'CatName': 'Sweaters & Sweatshirts', 'CategoryValue': 'jumpers-cardigans', 'CategoriesArray': [{'CatName': 'Sweaters', 'CategoryValue': 'jumpers', 'tagCodes': ['kids_baby_boy_clothing_jumperssweatshirts_jumpers', 'kids_baby_boy_clothing_jumperssweatshirts_jumpers']}, {'CatName': 'Cardigans', 'CategoryValue': 'cardigans', 'tagCodes': ['kids_baby_boy_clothing_jumperssweatshirts_cardigans', 'kids_baby_boy_clothing_jumperssweatshirts_cardigans']}, {'CatName': 'Hoodies', 'CategoryValue': 'hoodies', 'tagCodes': ['kids_baby_boy_clothing_jumperssweatshirts_hoodies', 'kids_baby_boy_clothing_jumperssweatshirts_hoodies']}, {'CatName': 'Sweatshirts', 'CategoryValue': 'sweatshirts', 'tagCodes': ['kids_baby_boy_clothing_jumperssweatshirts_sweatshirts', 'kids_baby_boy_clothing_jumperssweatshirts_sweatshirts']}], 'tagCodes': ['kids_baby_boy_clothing_jumperssweatshirts', 'kids_baby_boy_clothing_jumperssweatshirts']}, {'CatName': 'Pants & Jeans', 'CategoryValue': 'trousers-jeans', 'CategoriesArray': [{'CatName': 'Joggers & Sweatpants', 'CategoryValue': 'joggers-sweatpants', 'tagCodes': ['kids_baby_boy_clothing_trousersjeans_joggerssweatpants', 'kids_baby_boy_clothing_trousersjeans_joggerssweatpants']}, {'CatName': 'Pants', 'CategoryValue': 'trousers', 'tagCodes': ['kids_baby_boy_clothing_trousersjeans_trousers', 'kids_baby_boy_clothing_trousersjeans_trousers']}, {'CatName': 'Jeans', 'CategoryValue': 'jeans', 'tagCodes': ['kids_baby_boy_clothing_trousersjeans_jeans', 'kids_baby_boy_clothing_trousersjeans_jeans']}, {'CatName': 'Leggings', 'CategoryValue': 'leggings', 'tagCodes': ['kids_baby_boy_clothing_trousersjeans_leggingstreggings', 'kids_baby_boy_clothing_trousersjeans_leggingstreggings']}, {'CatName': 'Overalls', 'CategoryValue': 'dungarees', 'tagCodes': ['kids_baby_boy_clothing_trousersjeans_dungarees', 'kids_baby_boy_clothing_trousersjeans_dungarees']}], 'tagCodes': ['kids_baby_boy_clothing_trousersjeans', 'kids_baby_boy_clothing_trousersjeans']}, {'CatName': 'Shorts', 'CategoryValue': 'shorts', 'CategoriesArray': [{'CatName': 'Short Overalls', 'CategoryValue': 'dungaree-shorts', 'tagCodes': ['kids_baby_boy_clothing_shorts_dungaree', 'kids_baby_boy_clothing_shorts_dungaree']}], 'tagCodes': ['kids_baby_boy_clothing_shorts', 'kids_baby_boy_clothing_shorts']}, {'CatName': 'Sleepwear', 'CategoryValue': 'nightwear', 'CategoriesArray': [{'CatName': 'Sleep Sacks', 'CategoryValue': 'sleeping-bags', 'tagCodes': ['kids_baby_boy_clothing_nightwear_sleepingbags', 'kids_baby_boy_clothing_nightwear_sleepingbags']}], 'tagCodes': ['kids_baby_boy_clothing_nightwear', 'kids_baby_boy_clothing_nightwear']}, {'CatName': 'Swimwear', 'CategoryValue': 'swimwear', 'tagCodes': ['kids_baby_boy_clothing_swimwear', 'kids_baby_boy_clothing_swimwear']}, {'CatName': 'Socks', 'CategoryValue': 'socks', 'tagCodes': ['kids_baby_boy_clothing_socks', 'kids_baby_boy_clothing_socks']}], 'tagCodes': ['kids_baby_boy_clothing', 'kids_baby_boy_clothing']}, {'CatName': 'Outerwear', 'CategoryValue': 'outerwear', 'CategoriesArray': [{'CatName': 'Fleece', 'CategoryValue': 'fleece', 'tagCodes': ['kids_baby_boy_outerwear_fleece', 'kids_baby_boy_outerwear_fleece']}, {'CatName': 'Jackets & Coats', 'CategoryValue': 'jackets-coats', 'tagCodes': ['kids_baby_boy_outerwear_jacketscoats', 'kids_baby_boy_outerwear_jacketscoats']}], 'tagCodes': ['kids_baby_boy_outerwear', 'kids_baby_boy_outerwear']}, {'CatName': 'Accessories', 'CategoryValue': 'accessories', 'CategoriesArray': [{'CatName': 'Hats', 'CategoryValue': 'hats', 'tagCodes': ['kids_baby_boy_accessories_hats', 'kids_baby_boy_accessories_hats']}, {'CatName': 'Scarves & Gloves', 'CategoryValue': 'scarves-gloves', 'tagCodes': ['kids_baby_boy_accessories_scarvesgloves', 'kids_baby_boy_accessories_scarvesgloves']}, {'CatName': 'Bibs & Bandanas', 'CategoryValue': 'bibs', 'tagCodes': ['kids_baby_boy_accessories_bibs', 'kids_baby_boy_accessories_bibs']}], 'tagCodes': ['kids_baby_boy_accessories', 'kids_baby_boy_accessories']}, {'CatName': 'Shoes', 'CategoryValue': 'shoes', 'CategoriesArray': [{'CatName': 'Sneakers', 'CategoryValue': 'trainers', 'tagCodes': ['kids_baby_boy_shoes_trainers', 'kids_baby_boy_shoes_trainers']}, {'CatName': 'Boots', 'CategoryValue': 'boots', 'tagCodes': ['kids_baby_boy_shoes_boots', 'kids_baby_boy_shoes_boots']}, {'CatName': 'Sandals & Flip-Flops', 'CategoryValue': 'sandals-flip-flops', 'tagCodes': ['kids_baby_boy_shoes_sandalsflipflops', 'kids_baby_boy_shoes_sandalsflipflops']}, {'CatName': 'Slippers', 'CategoryValue': 'slippers', 'tagCodes': ['kids_baby_boy_shoes_slippers', 'kids_baby_boy_shoes_slippers']}], 'tagCodes': ['kids_baby_boy_shoes', 'kids_baby_boy_shoes']}], 'tagCodes': ['kids_baby_boy_viewall', 'kids_baby_boy_viewall']}, {'CatName': 'Shop by Product', 'CategoryValue': 'shop-by-product', 'CategoriesArray': [{'CatName': 'View all', 'CategoryValue': 'view-all', 'tagCodes': ['kids_newbornbaby_viewall', 'kids_newbornbaby_viewall']}, {'CatName': 'New Arrivals', 'CategoryValue': 'new-arrivals', 'tagCodes': ['kids_newbornbaby_newarrivals', 'kids_newbornbaby_newarrivals']}, {'CatName': 'Clothing', 'CategoryValue': 'clothing', 'CategoriesArray': [{'CatName': 'Bodysuits', 'CategoryValue': 'bodysuits', 'tagCodes': ['kids_newbornbaby_clothing_bodysuits', 'kids_newbornbaby_clothing_bodysuits']}, {'CatName': 'Rompers', 'CategoryValue': 'rompers', 'tagCodes': ['kids_newbornbaby_clothing_jumpsuitsplaysuits', 'kids_newbornbaby_clothing_jumpsuitsplaysuits']}, {'CatName': 'Sets & Outfits', 'CategoryValue': 'sets-outfits', 'tagCodes': ['kids_newbornbaby_setsoutfits', 'NAL151_s6_MP_K_B', 'kids_newbornbaby_setsoutfits']}, {'CatName': 'Tops & T-shirts', 'CategoryValue': 'tops-t-shirts', 'tagCodes': ['kids_newbornbaby_clothing_topstshirts', 'kids_newbornbaby_clothing_topstshirts']}, {'CatName': 'Sweaters & Cardigans', 'CategoryValue': 'jumpers-cardigans', 'tagCodes': ['kids_newbornbaby_clothing_jumperssweatshirts', 'kids_newbornbaby_clothing_jumperssweatshirts']}, {'CatName': 'Pants & Jeans', 'CategoryValue': 'trousers-jeans', 'tagCodes': ['kids_newbornbaby_clothing_trousersjeans', 'kids_newbornbaby_clothing_trousersjeans']}, {'CatName': 'Dresses', 'CategoryValue': 'dresses', 'tagCodes': ['kids_newbornbaby_clothing_dresses', 'kids_newbornbaby_clothing_dresses']}, {'CatName': 'Shorts', 'CategoryValue': 'shorts', 'tagCodes': ['kids_newbornbaby_clothing_shorts', 'kids_newbornbaby_clothing_shorts']}, {'CatName': 'Swimwear', 'CategoryValue': 'swimwear', 'tagCodes': ['kids_newbornbaby_clothing_swimwear', 'kids_newbornbaby_clothing_swimwear']}, {'CatName': 'Sleepwear', 'CategoryValue': 'nightwear', 'tagCodes': ['kids_newbornbaby_clothing_nightwear', 'kids_newbornbaby_clothing_nightwear']}, {'CatName': 'Socks & Tights', 'CategoryValue': 'socks-tights', 'tagCodes': ['kids_newbornbaby_clothing_sockstights', 'kids_newbornbaby_clothing_sockstights']}], 'tagCodes': ['kids_newbornbaby_clothing', 'kids_newbornbaby_clothing']}, {'CatName': 'Outerwear', 'CategoryValue': 'outerwear', 'CategoriesArray': [{'CatName': 'Fleece', 'CategoryValue': 'fleece', 'tagCodes': ['kids_newbornbaby_outerwear_fleece', 'kids_newbornbaby_outerwear_fleece']}], 'tagCodes': ['kids_newbornbaby_outerwear', 'kids_newbornbaby_outerwear']}, {'CatName': 'Accessories', 'CategoryValue': 'accessories', 'tagCodes': ['kids_newbornbaby_accessories', 'kids_newbornbaby_accessories']}, {'CatName': 'Shoes', 'CategoryValue': 'shoes', 'tagCodes': ['kids_newbornbaby_shoes', 'kids_newbornbaby_shoes']}, {'CatName': 'Costumes', 'CategoryValue': 'fancy-dress-costumes', 'tagCodes': ['kids_newbornbaby_costumesfancydresses', 'kids_newbornbaby_costumesfancydresses']}], 'tagCodes': ['kids_newbornbaby_viewall']}, {'CatName': 'Popular Now', 'CategoryValue': 'seasonal-trending', 'CategoriesArray': [{'CatName': 'Comfortable elegance: online exclusives', 'CategoryValue': 'baby-exclusives', 'tagCodes': ['Baby_Shop_Exclusive_WK27', 'Baby_Shop_Exclusive_WK27']}, {'CatName': 'Fuzzy, cozy & toasty ', 'CategoryValue': 'soft-fall-textures', 'tagCodes': ['Baby_WK34_Baby_Soft_Cozy_Textures_Shop', 'Baby_WK34_Baby_Soft_Cozy_Textures_Shop']}, {'CatName': 'Halloween', 'CategoryValue': 'halloween', 'tagCodes': ['kids_newbornbaby_halloween', 'kids_newbornbaby_halloween', 'Kids_Halloween_WK34']}, {'CatName': 'Newborn and Maternity Shop', 'CategoryValue': 'family', 'tagCodes': ['kids_newbornbaby_familycollection', 'wk37_maternity_shop', 'wk28_update']}, {'CatName': 'Basics & Multipacks from $6.99', 'CategoryValue': 'multipacks', 'tagCodes': ['kids_newbornbaby_multipacks', 'kids_newbornbaby_multipacks']}, {'CatName': 'The Character Shop from $6.99', 'CategoryValue': 'character', 'tagCodes': ['kids_newbornbaby_character', 'kids_newbornbaby_character']}], 'tagCodes': []}, {'CatName': 'Sustainability', 'CategoryValue': 'sustainability', 'CategoriesArray': [{'CatName': 'Our products', 'CategoryValue': 'our-products', 'tagCodes': ['baby_sustainability', 'baby_sustainability']}], 'tagCodes': []}], 'tagCodes': ['kids_newbornbaby_viewall']}
Можете подсказать как собрать все значения tagCodes в каждой из вложенных CategoriesArray
Вижу примерно решение через цикл whyle True и for, что то со следующей логикой:
codes_list = []
json_data = тот json что прикрепил выше
for key, value in json_data.items():
if key == 'CategoriesArray':
end = 0
whule True:
json_data = json_data['CategoriesArray']
for key, value in json_data.items():
if 'tagCodes' in key:
codes = json_data[key]
codes_list.append(codes)
if key == 'CategoriesArray':
json_data = json_data['CategoriesArray']
try:
check = json_data['CategoriesArray']
except Exception:
end = 1
break
if end == 1:
break
break
Ответы (1 шт):
Вариант с библиотекой jsonpath-ng
pip install jsonpath-ng
from jsonpath_ng import parse, jsonpath
import json
data = json.load(
open('data.json', 'r', encoding='utf-8')
)
# в переменной data ваши данные
pat = parse('$.CategoriesArray[*]..tagCodes')
result = [elem for item in pat.find(data) for elem in item.value]
print(result[:10])
# ['OnlineOffer_W34_Kids', 'OnlineOffer_W34_Baby', 'kids_new_born_viewall', 'kids_new_born_viewall', 'kids_new_born_viewall', 'kids_new_born_viewall', 'kids_new_born_newarrivals', 'kids_new_born_newarrivals', 'kids_new_born_clothing', 'kids_new_born_clothing']
Вариант через рекурсию
import json
result = []
data = json.load(
open('data2.json', 'r', encoding='utf-8')
)
def find(obj):
global result
if isinstance(obj, list):
return list(map(find, obj))
elif isinstance(obj, dict):
for k, v in obj.items():
if k == 'tagCodes':
result += v
obj[k] = find(v)
return obj
find(
data.get('CategoriesArray')
)
print(
result[:10]
)
# ['OnlineOffer_W34_Kids', 'OnlineOffer_W34_Baby', 'kids_new_born_viewall', 'kids_new_born_viewall', 'kids_new_born_newarrivals', 'kids_new_born_newarrivals', 'kids_new_born_clothing_bodysuits_wrapover', 'kids_new_born_clothing_bodysuits_wrapover', 'kids_new_born_clothing_bodysuits', 'kids_new_born_clothing_bodysuits']
Для парсинга JSON есть еще одна очень хорошая библиотека
jmespathно она в рекурсию не умеет