1、Python KeyError异常
如果用dict[key]这个读取会报KeyError异,dict.get方法主要是提供一个取不到对应key的value就返回默认值的功能
2、openpyxl.utils.exceptions.IllegalCharacterError
如果是手动调用 xlwt 这种第三方库除了错可能没法找错误,但是从错误中我们看到错误是由 openpyxl 抛出的,我们试着从 openpyxl 中找解决方案
出错处的代码
value = value[:32767]
if next(ILLEGAL_CHARACTERS_RE.finditer(value), None):
raise IllegalCharacterError
return value
意思很明显了, 如果找非非法字符则抛出错误,ILLEGAL_CHARACTERS_RE 就定义了非法字符,它是这样的
ILLEGAL_CHARACTERS_RE = re.compile(r'[00-10]|[13-14]|[16-37]')
所以处理 content 时用这个正则去掉非法字符即可
content = ILLEGAL_CHARACTERS_RE.sub(r'', content)
3、response.json()报错
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
原因:post传参要用data参数,不能直接拼接在url后面
4、openpyxl设置cell背景色
问题:PatternFill(bgColor='20BA72', fill_type="solid")无效
原因:bgColor改成fgColor
5、程序异常中断时执行代码
场景:ctrl+C或其他意外崩溃时,希望能保存一下数据
方法:把所有代码放到try except里面
try:
main()
except BaseException as e:
print('error: %s' % e)
print('do something')
6、常见俩错误
错误:Message: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
原因:浏览器莫名崩溃
错误:Message: element click intercepted: Element <a class="TopicLink" href="//www.zhihu.com/topic/20059280" target="_blank" data-za-detail-view-id="3942">...</a> is not clickable at point (291, 255). Other element would receive the click: <div class="NumberBoard-itemName">...</div>
原因:可点击元素高亮状态会弹一个弹窗,盖住了将要点击的区域
7、程序意外停止后重启?
在程序中断代码处重新调用方法
8、元素高亮?
# 记录元素修改前的border样式
self.border = self.ele.value_of_css_property('border')
# 记录元素修改前的border样式
self.border = self.ele.value_of_css_property('border')
# 将border样式还原
self.driver.execute_script(f'arguments[0].style.border="{self.border}";', self.ele)
9、SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED]
python使用requests库发送https请求报错。
方法:设置verify=False即可。requests.post(url, data = data, headers = header, verify=False)
10、RuntimeWarning: Glyph 29575 missing from current font.
font.set_text(s, 0, flags=flags)
原因:matplotlib默认不支持中文。在Linux环境下没有中文字体,使用使用了默认的字体,但是默认的字体不支持中文,产生了乱码。
解决:https://www.yuque.com/fcant/python/ptzo53
命令:matplotlib.matplotlib_fname()、matplotlib.get_cachedir()
注意:font.sans-serif里面SimHei要放在第一个,否则不生效。
11、plt.savefig()保存的图片为空白
原因:plt.show()之后会默认打开一个新的空白画板。把plt.savefig()放在plt.show()之前运行就行。
plt.figure(figsize=(6, 6.5))也要注意放在最前面才生效
12、取list最后几个元素
list[-3:] # 取list最后3个元素,是个数组
list[-3] # 取list倒数第3个元素,是个元素
13、Mac查看Chrome的cookie目录
浏览器输入chrome://version/,个人资料路径就是cookie路径
遗留问题
1、不占用浏览器?
2、运行完成发送邮件?
网友评论