我正在使用scrapy在每个产品URL中生成一个JSON格式,并创建我的.csv,它工作得很好.
def parse_variants(self, response):
text = '.js'
url = response.xpath('//link[2]/@href').get()
full_url = url + text
parsing = requests.get(full_url).json()
for x in range(0,len(parsing['variants'])):
yield {
'added_on_store': parsing['created_at'],
'type': parsing['type'],
'product_name': parsing['title'],
'variant_name': parsing['variants'][x]['title'],
'current_price': (parsing['variants'][x]['price']) // 100,
'original_price': parsing['variants'][x]['compare_at_price'],
'bar_code/GTIN': parsing['variants'][x]['barcode']
}
默认情况下,价格是4位数,我需要go 掉最后2位(这就是我使用‘//100’的原因). 它适用于‘Current_Price’,但不一定适用于‘Origin_Price’,因为该值可以为空.
如果‘Origin_Price’为空,它将返回一个有意义的错误,因为它不能以100为底.
这就是为什么我希望有一个错误处理程序或一个默认参数,如果它是空的,但如果有东西,仍然使用‘//100’.
有什么建议吗?
谢谢.