解决调用百度OCR接口报错:KeyError: ‘words_result‘

博客讲述了在调用百度OCR接口时遇到KeyError: 'words_result'的问题,原因是QPS超限额。解决方案是通过在百度云免费领取资源来增加调用额度,步骤包括在应用中选择免费领取资源,领取通用场景识别资源,并在资源列表中查看已领取的资源。
摘要由CSDN通过智能技术生成

解决调用百度OCR接口报错:KeyError: 'words_result'


今天在试百度文字识别代码,想调用这个接口对图片型pdf识别文字,然后在网上试了很多代码,发现一直都是报错:KeyError: ‘words_result’。本来以为代码有问题,然后使用百度官方的代码,也是这样。后面终于找到了原因及解决方案。。。

报错原因

通过debug,发现在result处会显示错误码:18,对应的错误是Open api qps request limit reached。查看文字识别文档中的错误码(链接),发现原因是:QPS超限额,免费额度并发限制为2QPS,开通按量后付费或购买次数包后并发限制为10QPS,如您需要更多的并发量,可以选择购买QPS叠加包;邀测和未支持计费的接口,您可以在控制台提交工单申请提升限额。也就是说,我们没有免费的额度去调用接口,因此识别没有结果。
文字识别文档中的错误码

解决方案

在知道了原因之后,我们就可以对症下药。百度云是可以免费领取调用额度的,具体操作如下:
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 在你创建的应用中,选择“免费领取资源” ;
    在这里插入图片描述
  2. 进入后,会有一个通用场景识别,选择“全部”,然后进行领取(这里因为我已经领过了,所以就没有显示了);
    在这里插入图片描述
  3. 领取完之后,回到刚刚那个界面,查看“资源列表”,可以看到自己已经领取的资源;
    在这里插入图片描述
    在这里插入图片描述
    这样就可以识别成功啦~
好的,以下是制作一个调用百度API的OCR识别页面的步骤: 1. 首先,你需要在百度AI平台上注册一个账号,并且创建一个应用,获取应用的API Key和Secret Key。 2. 在你的HTML页面中,创建一个表单,用于上传图片。 ```html <form method="POST" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" value="识别"> </form> ``` 3. 在你的后端代码中,使用Python语言编写一个调用百度API的函数。下面是一个使用Python的requests库向百度API发送POST请求的示例代码: ```python import requests def recognize_text(image_path, api_key, secret_key): url = "https://aip.baidubce.com/oauth/2.0/token" grant_type = "client_credentials" # 获取Access Token response = requests.get( f"{url}?grant_type={grant_type}&client_id={api_key}&client_secret={secret_key}" ) access_token = response.json()["access_token"] # 发送OCR识别请求 url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic" headers = {"Content-Type": "application/x-www-form-urlencoded"} params = {"access_token": access_token} image = open(image_path, "rb").read() response = requests.post(url=url, headers=headers, params=params, data=image) # 解析响应 result = response.json() if "error_code" in result: return None else: return result["words_result"] ``` 4. 在你的后端代码中,获取上传的图片,并调用OCR识别函数。 ```python from flask import Flask, request, render_template app = Flask(__name__) @app.route("/", methods=["GET", "POST"]) def home(): if request.method == "POST": # 保存上传的图片 image = request.files["image"] image.save("image.png") # 调用OCR识别函数 api_key = "your_api_key" secret_key = "your_secret_key" result = recognize_text("image.png", api_key, secret_key) # 渲染模板,显示识别结果 return render_template("result.html", result=result) else: return render_template("index.html") if __name__ == "__main__": app.run(debug=True) ``` 5. 在你的HTML模板中,渲染识别结果。 ```html {% if result %} <h2>识别结果:</h2> <ul> {% for text in result %} <li>{{ text }}</li> {% endfor %} </ul> {% endif %} ``` 以上就是制作一个调用百度API的OCR识别页面的步骤。
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值