Я полагаю, у вас проблема с отступами.Python определяет блок по отступу.Ваша структура if / else находится вне цикла for.Это то, что вы могли бы искать:
price_list = [{}]
for i in price_search:
lnp = i.LowestNewPrice.FormattedPrice.text
qty_n = i.TotalNew.text
qty_u = i.TotalUsed.text
int_qty_u = int(qty_u)
if int_qty_u > 0:
lup = i.LowestUsedPrice.FormattedPrice.text
else:
continue
price_list.append({'Lowest New Price': lnp, 'Lowest Used Price': lup, 'Quantity New': qty_n, 'Quantity Used': qty_u})
Кроме этого, используйте предложение try-exc для обработки исключительных значений или случаев и возврата программы в допустимое состояние.Примером может быть:
if int_qty_u > 0:
try:
lup = i.LowestUsedPrice.FormattedPrice.text
except: #we catch any exception that could happend
lup = '<null>' #just to put a string
для завершения я бы сделал попытку-исключение для всего блока for:
price_list = [{}]
for i in price_search:
try:
lnp = i.LowestNewPrice.FormattedPrice.text
qty_n = i.TotalNew.text
qty_u = i.TotalUsed.text
int_qty_u = int(qty_u)
if int_qty_u > 0:
lup = i.LowestUsedPrice.FormattedPrice.text
else:
continue
except:
lnp,qty_n,qty_u,int_qty_u='null','null','null',-1 #multiple assignment in a bad case
price_list.append({'Lowest New Price': lnp, 'Lowest Used Price': lup, 'Quantity New': qty_n, 'Quantity Used': qty_u})