1.SyntaxError: EOL while scanning string literal
这是我在某个案例中遇到的部分报错代码片段
下面以代码片段为例来说明如何处理该类型错误
源错误代码
session = requests.Session()
session.headers.update
({
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 ' + ' (KHTML, like Gecko) Chrome/62.0.3202.62
Safari/537.36'
})
报错提示信息
我们从报错中发现:
在Python执行该代码的最后阶段的最后一步(EOL是指项目生命周期的最后阶段的最后一步),scanning string literal(扫描字符串)时出问题了。
可以看到User-Agent的属性值用单引号括起来了。
问题就在这里:这是一个多行字符串,需要使用三引号。
使用三引号纠正后的代码
session = requests.Session()
session.headers.update
({
'User-Agent' : '''Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 ''' + ''' (KHTML, like Gecko) Chrome/62.0.3202.62
Safari/537.36'''
})
2.IndentationError: expected an indented block
这其实就是一个代码缩进不正确而引发的报错。在Python中,对代码的格式要求很严格,该缩进的时候缩进。
举个例子
def get_reviews(product_id, page):
data = {
'sortBy':'',
'reviewerType':'all_reviews',
'formatType':'',
'mediaType':'',
'filterByStar':'all_stars',
'pageNumber':page,
'filterByKeyword':'',
'shouldAppend':'undefined',
'deviceType':'desktop',
'reftag':'cm_cr_getr_d_paging_btm_{}'.format(page),
'pageSize':10,
'asin':product_id,
'scope':'reviewsAjax1'
}
引发错误
报错提示
稍加修改
正确代码片段
def get_reviews(product_id, page):
data = {
'sortBy':'',
'reviewerType':'all_reviews',
'formatType':'',
'mediaType':'',
'filterByStar':'all_stars',
'pageNumber':page,
'filterByKeyword':'',
'shouldAppend':'undefined',
'deviceType':'desktop',
'reftag':'cm_cr_getr_d_paging_btm_{}'.format(page),
'pageSize':10,
'asin':product_id,
'scope':'reviewsAjax1'
}