已解决Python调用免费申请的百度图形识别接口{‘error_code‘: 18, ‘error_msg‘: ‘Open api qps request limit reached‘}
粉丝群里面的一个粉丝用Python调用免费申请的百度图形识别接口的的时候,发生了报错(跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错信息和代码如下:
import time
from aip import AipOcr
import os
import xlwt
"""定义常量(写自己注册后百度发给你的)"""
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
"""初始化对象"""
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
def jiexi(filePath, data_list):
"""读取图片"""
with open(filePath, 'rb') as fp:
image = fp.read()
"""调用通用文字识别接口, 识别本地图像"""
result = client.basicGeneral(image)
print(result)
i = 0
for item in result['words_result']:
# print(item['words'])
if i == 0:
num = item['words']
elif i == 1:
g = item['words']
elif i == 2:
s = item['words']
i += 1
if i == 3:
data_list.append((num, g, s))
i = 0
def to_excel(temp):
# 1. 创建Excel表对象
workbook = xlwt.Workbook(encoding='utf8')
# 2. 新建sheet表
worksheet = workbook.add_sheet('Sheet1')
# 3. 自定义列名
col1 = ('序号', '企业名称', '市(州)')
# 4. 将列属性元组col写进sheet表单中第一行
for i in range(0, len(col1)):
worksheet.write(0, i, col1[i])
# 5. 将数据写进sheet表单中
for i in range(0, len(temp)):
data = temp[i]
for j in range(0, len(col1)):
worksheet.write(i + 1, j, data[j])
# 6. 保存文件分两种格式
workbook.save(r'2020.xls')
def main():
in_path = r"C:\Users\Administrator\Desktop\工作文档\2020"
fin = [fname for fname in os.listdir(in_path)]
data_list = []
for img in fin:
img_path = in_path + '\\' + img
print(img_path)
jiexi(img_path, data_list)
# to_excel(data_list)
if __name__ == '__main__':
main()
刚开始两个图片都是读取都是成功的,第三个的时候就打印出:
{'error_code': 18, 'error_msg': 'Open api qps request limit reached'}
报错信息翻译如下:
{‘error_code’:18,‘error_msg’:‘已达到打开api qps请求限制’}
免费申请的百度图像识别接口只支持一分钟调用两次如下图所示,小伙伴们按下面的方法解决即可:
循环遍历图片的时候加上时间限制,休息一分钟再调用没有问题了:
time.sleep(60)
本文已收录于:《告别Bug》专栏
本专栏用于记录学习和工作中遇到的各种疑难Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中等等问题,订阅专栏+关注博主后如遇到其他问题可私聊帮忙解决!!!