运行EvernoteToWordpress,报错:
Exception has occurred: TypeError string indices must be integers File "/Users/crifan/dev/dev_root/crifan/EvernoteToWordpress/EvernoteToWordpress/libs/crifan/baiduOcr.py", line 205, in isWordsInResult wordsResultList = respJson["words_result"]

去找了下,报错原因是:
20210924 12:06:50 crifanEvernote.py:750 INFO [1/60] imgFilename=None 20210924 12:06:50 crifanEvernote.py:717 INFO Resized: PNG,12x12,157.0B -> PNG,12x12,157.0B => ratio=100%
导致
respJson={'log_id': 1441252773455773889, 'error_msg': 'image size error', 'error_code': 216202}
找到了,是帖子:
【已解决】Linux或Mac的终端中如何显示带颜色的文字即彩色文字
导致的:

其中的小图片,尺寸太小,只有12×12
导致报错。
所以去加上代码支持:
其中,想要去实现:
【部分解决】Python实现enum枚举的值是int整型和str字符串等复合类型的值
接着继续改代码为:
if errorCode == BaiduOcrApiError.QPS_LIMIT_REACHED.errorCode: elif errorCode == BaiduOcrApiError.DAILY_LIMIT_REACHED.errorCode: else: logging.error("For other baidu OCR api error %s, just set to None", (errorCode, errorMsg)) respJson = {}

即可正常输出:
20210924 16:04:16 baiduOcr.py:193 WARNING respJson={'log_id': 1441312515727718204, 'error_msg': 'image size error', 'error_code': 216202} 20210924 16:07:19 baiduOcr.py:227 ERROR For other baidu OCR api error (216202, 'image size error'), just set to None
即可规避此问题。
以及后续改动几处,确保当返回空,就不继续处理了。
即可继续运行:

转载请注明:在路上 » 【已解决】EvernoteToWordPress出错:TypeError string indices must be integers