Поэтому я использую цикл for, чтобы определить, существует ли определенный ключ в массиве.Но до сих пор каждый метод, который я пробовал, не работал для того, что я пытаюсь выполнить.
Мой код выглядит следующим образом:
for i in range(1,len(opslag)):
info_product = 'https://examplesite.com/'+str(opslag[i])+'.json'
info_get = session.get(info_product)
text_info_prdt = info_get.text
json_info_prdt =json.loads(text_info_prdt)
if json_info_prdt['product']['metafields']['meta_title_nl'] in json_info_prdt['product']['metafields']:
print(json_info_prdt['product']['metafields']['meta_title_nl'])
else:
print(json_info_prdt['product']['id'])
Так что значение в этом случае json_info_prdt['product']['metafields']['meta_title_nl']
,не существует в каждом массиве, который я пытаюсь перебрать.Так что иногда оператор if else будет работать, и значение будет напечатано.Но иногда значение json_info_prdt['product']['metafields']['meta_title_nl']
вообще не существует и дает мне KeyError
.
Итак, я хочу получить все идентификаторы продуктов, которые возвращают KeyError
, но яне хочу, чтобы цикл прекратился, а продолжается до тех пор, пока он не закончится.Поэтому я также не хочу, чтобы цикл перезапускался сам по себе, потому что это бессмысленно.
Мой JSON выглядит следующим образом:
{
product:{
article_code:"",
barcode:"",
brand_id:null,
created_at:"2017-07-07T12:49:23+02:00",
data01:"",
data02:"",
data03:"",
delivery_date_id:null,
has_custom_fields:true,
has_discounts:false,
has_matrix:false,
hits:0,
hs_code:null,
id:52847777,
image_id:130661048,
is_visible:true,
price_excl:0,
price_incl:0,
price_old_excl:0,
price_old_incl:0,
product_set_id:383078,
product_type_id:null,
search_context:"",
shop_id:240359,
sku:"",
supplier_id:null,
updated_at:"2018-07-10T10:53:15+02:00",
variants_count:4,
visibility:"visible",
weight:0,
custom_fields:[
],
variants:[
],
product_relations:[
],
product_categories:[
],
product_discounts:[
],
product_type:null,
product_filter_values:[
],
product_bundles:[
],
metafields:{
meta_title_nl:"Big House",
meta_title_en:"cxzcxzcxz",
meta_description_nl:"This is a big house"
},
supplier:null,
product_images:[
],
brand:null,
delivery_date:null,
image:{
},
nl:{
},
en:{
},
tags:null
}
}
Как вы можете видеть, значение meta_title_nl
существует в этом, но иногда оно не существует.