You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用OCR Space API提取图片文本,如何单独获取ParsedText字符串?

提取OCR Space API返回的ParsedText字段

我之前折腾OCR Space API的时候也踩过类似的坑,大概率是没摸清楚API返回的JSON结构细节。咱们一步步来解决:

先明确API返回的结构

OCR Space的成功响应大概是这样的(简化版):

{
  "IsErroredOnProcessing": false,
  "ParsedResults": [
    {
      "ParsedText": "这里是图片识别出来的文本内容"
    }
  ]
}

注意ParsedText是嵌套在ParsedResults数组里的第一个对象中,直接拿根节点的键是找不到的。

正确提取的代码示例(以Python为例)

假设你用requests库调用API,完整的提取流程应该是这样:

import requests

# 配置API参数
API_KEY = "你的API密钥"
IMAGE_URL = "要识别的图片URL"  # 本地图片可以用files参数上传,这里以URL为例

# 发送请求
response = requests.post(
    "https://api.ocr.space/parse/image",
    data={
        "apikey": API_KEY,
        "url": IMAGE_URL,
        "language": "chs"  # 如果是中文识别,加上这个参数
    }
)

# 解析响应JSON
ocr_result = response.json()

# 提取ParsedText
if not ocr_result["IsErroredOnProcessing"]:
    # 因为ParsedResults是数组,取第一个元素的ParsedText
    parsed_text = ocr_result["ParsedResults"][0]["ParsedText"]
    print("提取到的文本:")
    print(parsed_text)
else:
    # 处理错误情况
    print(f"识别出错了:{ocr_result.get('ErrorMessage', '未知错误')}")

常见错误排查

  • KeyError报错:大概率是你直接写了ocr_result["ParsedText"],忽略了ParsedResults数组这一层;或者API调用失败,响应里根本没有ParsedResults字段,记得先判断IsErroredOnProcessing
  • 返回的是字符串不是JSON:别直接用response.text,一定要用response.json()解析成字典再操作。
  • 权限/图片问题:检查API密钥是否正确,图片URL是否能正常访问(如果是本地图片,要用files参数上传,而不是data)。

内容的提问来源于stack exchange,提问作者sayamkanwar

火山引擎 最新活动