API文档
更新时间:2025-04-28
在线调试
您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
请求说明
请求示例
HTTP 方法:POST
请求URL: https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise
URL参数:
| 参数 | 值 | 
|---|---|
| access_token | 通过API Key和Secret Key获取的access_token,参考“Access Token获取” | 
Header如下:
| 参数 | 值 | 
|---|---|
| Content-Type | application/x-www-form-urlencoded | 
Body中放置请求参数,参数详情如下:
请求参数
| 参数 | 是否必选 | 类型 | 可选值范围 | 说明 | 
|---|---|---|---|---|
| image | 和 url/pdf_file 三选一 | string | - | 图像数据,base64编码后进行urlencode,需去掉编码头(data:image/jpeg;base64, )要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式 | 
| url | 和 image/pdf_file 三选一 | string | - | 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式,当image字段存在时url字段失效   请注意关闭URL防盗链  | 
| pdf_file | 和 image/url 三选一 | string | - | PDF文件,base64编码后进行urlencode,需去掉编码头(data:application/pdf;base64, )要求base64编码和urlencode后大小不超过4M注:目前仅支持单页PDF识别,如上传的为多页PDF,仅识别第一页 | 
| templateSign | 和 classifierId 二选一 | string | - | 模板 ID,自定义模板或预置模板的唯一标示,可用于调用指定的识别模板进行结构化识别,可在「模板管理」页查看并复制使用 | 
| classifierId | 和 templateSign 二选一 | string | - | 分类器Id,分类器的唯一标示,可用于调用指定的分类器对传入的图片进行自动分类及识别 与 templateSign 至少存在一个,如同时存在,则优先级 templateSign > classfierId | 
请求代码示例
提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。
提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。
1# 请求模板id
2curl -i -k 'https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise?access_token=【调用鉴权接口获取的token】' --data 'templateSign=xxx&image=【图片Base64编码,需UrlEncode】' -H 'Content-Type:application/x-www-form-urlencoded'
3# 请求分类器id
4curl -i -k 'https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise?access_token=【调用鉴权接口获取的token】' --data 'classifierId=xxx&image=【图片Base64编码,需UrlEncode】' -H 'Content-Type:application/x-www-form-urlencoded'
        1# -*- coding:UTF-8 -*-
2# -*- encoding: utf-8 -*-
3import base64
4import requests
5import sys
6
7if sys.version_info.major == 2:
8    from urllib import quote
9else:
10    from urllib.parse import quote
11
12
13
14headers = {
15        'Content-Type': "application/x-www-form-urlencoded",
16        'charset': "utf-8"
17    }
18if __name__ == '__main__':
19    recognise_api_url = "https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise"
20    access_token = "your_access_token"
21    templateSign = "your_template_sign"
22
23    classifierId = "your_classifier_id"
24    # 测试数据路径
25    image_path = "your_image_path"
26    try:
27        with open(image_path, 'rb') as f:
28            image_data = f.read()
29        if sys.version_info.major == 2:
30            image_b64 = base64.b64encode(image_data).replace("\r", "")
31        else:
32            image_b64 = base64.b64encode(image_data).decode().replace("\r", "")
33
34        # 请求模板的bodys
35        recognise_bodys = "access_token=" + access_token + "&templateSign=" + templateSign + \
36                "&image=" + quote(image_b64.encode("utf8"))
37        # 请求分类器的bodys
38        classifier_bodys = "access_token=" + access_token + "&classifierId=" + classifierId + \
39                "&image=" + quote(image_b64.encode("utf8"))
40
41        # 请求模板识别
42        response = requests.post(recognise_api_url, data=recognise_bodys, headers=headers)
43        # 请求分类器识别
44        # response = requests.post(recognise_api_url, data=classifier_bodys, headers=headers)
45
46        print(response.text)
47    except Exception as e:
48        print (e)
        1package com.baidu.ocr;
2
3import com.baidu.ai.aip.utils.Base64Util;
4import com.baidu.ai.aip.utils.FileUtil;
5import com.baidu.ai.aip.utils.HttpUtil;
6
7
8public class App 
9{
10    public static void main(String[] args) throws Exception
11    {
12        /**
13         * 重要提示代码中所需工具类
14         * FileUtil,Base64Util,HttpUtil,GsonUtils请从
15         * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
16         * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
17         * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
18         * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
19         * 下载
20         */
21        // iocr识别apiUrl
22        String recogniseUrl = "https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise";
23
24
25        String filePath = "path\to\your\image.jpg";
26        try {
27                byte[] imgData = FileUtil.readFileByBytes(filePath);
28                String imgStr = Base64Util.encode(imgData);
29                // 请求模板参数
30                String recogniseParams = "templateSign=your_template_sign&image=" + URLEncoder.encode(imgStr, "UTF-8");
31                // 请求分类器参数
32                String classifierParams = "classifierId=your_classfier_id&image=" + URLEncoder.encode(imgStr, "UTF-8");
33                
34                
35                String accessToken = "your_access_token";
36                // 请求模板识别
37                String result = HttpUtil.post(recogniseUrl, accessToken, recogniseParams);
38                // 请求分类器识别
39                // String result = HttpUtil.post(recogniseUrl, accessToken, classifierParams);
40                
41                System.out.println(result);
42        } catch (Exception e) {
43                e.printStackTrace();
44        }
45    }
46}
        1#include <iostream>
2#include "curl_install/include/curl/curl.h"
3#include <fstream>
4#include "Base64.h"
5#include <cctype>
6#include <iomanip>
7#include <sstream>
8#include <string>
9
10using namespace std;
11// libcurl库下载链接:https://curl.haxx.se/download.html
12// 通用iocr的接口url
13static string ocr_result;
14/**
15 * curl发送http请求调用的回调函数,回调函数中对返回的json格式的body进行了解析,解析结果储存在全局的静态变量当中
16 * @param 参数定义见libcurl文档
17 * @return 返回值定义见libcurl文档
18 */
19static size_t callback(void *ptr, size_t size, size_t nmemb, void *stream) {
20    // 获取到的body存放在ptr中,先将其转换为string格式
21    ocr_result = string((char *) ptr, size * nmemb);
22    return size * nmemb;
23}
24
25string url_encode(const std::string &value) {
26    ostringstream escaped;
27    escaped.fill('0');
28    escaped << hex;
29    for (std::string::const_iterator i = value.begin(), n = value.end(); i != n; ++i) {
30        std::string::value_type c = (*i);
31        // Keep alphanumeric and other accepted characters intact
32        if (isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') {
33            escaped << c;
34            continue;
35        }
36        // Any other characters are percent-encoded
37        escaped << uppercase;
38        escaped << '%' << setw(2) << int((unsigned char) c);
39        escaped << nouppercase;
40    }
41
42    return escaped.str();
43}
44// base64.h下载地址
45// https://bj.bcebos.com/v1/iocr-movie/Base64.h
46int iocr_regenize(const std::string &image_base64, const std::string &access_token, 
47    const std::string &templateSign, const std::int classifierId) {
48    // iocr识别apiUrl
49    const static string recognise_api_url = "https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise";
50    // 请求模板的参数
51    std::string recognise_params = "access_token=" + access_token + "&templateSign=" + templateSign + "&image=" + image_base64;
52    // 请求分类器的参数
53    std::string classifier_params = "access_token=" + access_token 
54        + "&classifierId=" + std::to_string(classifierId) 
55        + "&image=" + image_base64;
56    struct curl_slist * headers = NULL;
57    headers = curl_slist_append(headers, "Content-Type:application/x-www-form-urlencoded");
58    headers = curl_slist_append(headers, "charset:utf-8");
59    CURL *curl;
60    CURLcode result_code;
61    int is_success;
62    curl = curl_easy_init();
63    if (curl) {
64        // 使用libcurl post数据:设定待post的url等
65        curl_easy_setopt(curl, CURLOPT_URL, recognise_api_url.c_str());
66        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
67        curl_easy_setopt(curl, CURLOPT_POST, 1);
68        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);
69        curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,callback);
70        // 请求模板
71        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, recognise_params.c_str());
72        curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, recognise_params.size());
73        // 请求分类器
74        // curl_easy_setopt(curl, CURLOPT_POSTFIELDS, classifier_params.c_str());
75        // curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, classifier_params.size());
76        
77        result_code = curl_easy_perform(curl);
78        // http post不成功时错误处理
79        if (result_code != CURLE_OK) {
80            fprintf(stderr, "curl_easy_perform() failed: %s\n",
81                    curl_easy_strerror(result_code));
82            is_success = 1;
83            return is_success;
84        }
85        curl_easy_cleanup(curl);
86        curl_slist_free_all(headers);
87        // 控制台输出识别结果
88        cout << ocr_result << endl;
89        is_success = 0;
90    } else {
91        fprintf(stderr, "curl_easy_init() failed.");
92        is_success = 1;
93    }
94    return is_success;
95}
96
97std::string get_image_b64(const std::string &image_path) {
98    ifstream f;
99    f.open(image_path, ios::in | ios::binary);
100    // 定位指针到文件末尾
101    f.seekg(0, ios::end);
102    int size = f.tellg();
103    // 指针重新回到文件头部
104    f.seekg(0, ios::beg);
105    char* buffer = (char*)malloc(sizeof(char)*size);
106    f.read(buffer,size);
107    f.close();
108    // base64编码
109    std::string image_b64 = base64_encode(buffer, size);
110    return image_b64;
111}
112
113int main() {
114    std::string access_token = "your_access_token";
115    std::string image_path = "your_file_path";
116    std::string templateSign = "your_templateSign";
117    std::int classifierId = "your_classifier_id";
118    // 获取本地图片的base64
119    std::string image_b64 = get_image_b64(image_path);
120    // urlcode编码
121    image_b64 = url_encode(image_b64);
122    // 对api发送post请求
123    iocr_regenize(image_b64, access_token, templateSign, classifierId);
124    return 0;
125}
        1<?php
2/**
3 * 发起http post请求(REST API), 并获取REST请求的结果
4 * @param string $url
5 * @param string $param
6 * @return - http response body if succeeds, else false.
7 */
8function request_post($url = '', $params = '')
9{
10    if (empty($url) || empty($params)) {
11        return false;
12    }
13    $headers = array("Content-Type" => "application/x-www-form-urlencoded", "charset" => "utf-8");
14    // 初始化curl
15    $curl = curl_init();
16    curl_setopt($curl, CURLOPT_URL, $url);
17    curl_setopt($curl, CURLOPT_HEADER, 0);
18    // 要求结果为字符串且输出到屏幕上
19    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
20    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
21    // post提交方式
22    //curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
23    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
24    curl_setopt($curl, CURLOPT_POST, 1);
25    curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
26    // 运行curl
27    $data = curl_exec($curl);
28    curl_close($curl);
29
30    return $data;
31}
32
33function get_image_b64($image_path = '')
34{
35    $image_b64 = '';
36    if(file_exists($image_path)) {
37        $image_data = file_get_contents($image_path);
38        print("file exists\n");
39        $image_b64_tmp = base64_encode($image_data);
40        $image_b64 = urlencode($image_b64_tmp);
41        //print($image_b64);
42    } else {
43        print("file doesn't exists\n");
44    }
45    return $image_b64;
46}
47// iocr识别api_url
48$recognise_api_url = "https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise";
49
50
51$access_token = "your_access_token";
52$templateSign = "your_templateSign";
53
54$classifierId = "your_classifier_id";
55$image_path = "your_file_path";
56$image_b64 = get_image_b64($image_path);
57// iocr识别bodys
58$recognise_bodys = "access_token=". $access_token. "&templateSign=". $templateSign. "&image=". $image_b64;
59# 分类器请求的bodys
60$classifier_bodys = "access_token=". $access_token. "&classifierId=". $classifierId. "&image=". $image_b64;
61
62# 请求分类器识别
63# $response = request_post($recognise_api_url, $classifier_bodys);
64# 请求模板识别
65$response = request_post($recognise_api_url, $recognise_bodys);
66var_dump($response)
67?>
        1using System;
2using System.Net;
3using System.IO;
4using System.Text;
5using System.Web;
6
7namespace iocr_api_demo
8{
9    class IocrApiDemo
10    {
11        static void Main(string[] args)
12        {
13            PostHttp();
14        }
15        public static void PostHttp(){
16            // fileUtils.cs 类下载地址
17            // https://bj.bcebos.com/v1/iocr-movie/FileUtils.cs
18            // iocr识别api_url
19            string recognise_api_url = "https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise";
20            string access_token = "your_access_token";
21            string templateSign = "yout_templateSign";
22            int detector = 0;
23            int classifierId = "your_classifier_id";
24            string image_path = "your_file_path";
25            string image_b64 = FileUtils.getFileBase64(image_path);
26            // iocr按模板id识别的请求bodys
27            string recognise_bodys = "access_token=" + access_token + "&templateSign=" + templateSign + 
28                            "&image=" + HttpUtility.UrlEncode(image_b64);
29            // iocr按分类器id识别的请求bodys
30            int classifierId = "your_classifier_id";
31            String classifier_bodys = "access_token=" + access_token + "&classifierId=" + classifierId + "&image=" + HttpUtility.UrlEncode(image_b64);
32            
33            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(recognise_api_url);
34            httpWebRequest.ContentType = "application/x-www-form-urlencoded";
35            httpWebRequest.Method = "POST";
36            httpWebRequest.KeepAlive = true;
37            try{
38                byte[] btBodys = Encoding.UTF8.GetBytes(recognise_bodys);
39                // 请求分类器id
40                // byte[] btBodys = Encoding.UTF8.GetBytes(classifier_bodys);
41                
42                httpWebRequest.ContentLength = btBodys.Length;
43                httpWebRequest.GetRequestStream().Write(btBodys, 0, btBodys.Length);
44                HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
45                StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
46                string responseContent = streamReader.ReadToEnd();
47                Console.WriteLine(responseContent);
48                httpWebResponse.Close();
49                streamReader.Close();
50                httpWebRequest.Abort();
51                httpWebResponse.Close();
52            } catch (Exception e){
53                Console.Write(e.Message);
54            }         
55        }
56    }
57}
        1#import <Foundation/Foundation.h>
2
3static NSString *const recognise_api_url = @"https://aip.baidubce.com/rest/2.0/solution/v1/iocr/recognise";
4
5@interface iocrDemo : NSObject
6
7- (NSData *)get_image_b64: (NSString *)image_path ;
8
9- (void) iocr_regenize:(NSData *)image_b64 :(NSString *)templateID : (NSString *)classifierId :(NSString *)token;
10
11@end
12
13@implementation iocrDemo
14
15- (NSData *)get_image_b64: (NSString *)image_path {
16    
17    NSInputStream *inputStream = [[NSInputStream alloc] initWithFileAtPath:image_path];
18    [inputStream open];
19    //初始化:NSData创建后不可以再修改,NSMutableData可以再次修改。
20    NSMutableData *mData = [[NSMutableData alloc] init];
21    //填充数据
22    NSData *appData=[[NSData alloc] init];
23    while([inputStream hasBytesAvailable]){
24        //单次读入的最大长度
25        uint8_t buf[1024];
26        NSUInteger len = [inputStream read:buf maxLength:sizeof(buf)];
27        appData = [NSData dataWithBytes:buf length:len];
28        //填充数据
29        [mData appendData:appData];
30    }
31    [inputStream close];
32    return mData;
33}
34
35+ (NSString *)base64Escape:(NSString *)string {
36    NSCharacterSet *URLBase64CharacterSet = [[NSCharacterSet characterSetWithCharactersInString:@"/+=\n"] invertedSet];
37    return [string stringByAddingPercentEncodingWithAllowedCharacters:URLBase64CharacterSet];
38}
39+ (NSString *)wwwFormWithDictionary:(NSDictionary *)dict {
40    NSMutableString *result = [[NSMutableString alloc] init];
41    if (dict != nil) {
42        for (NSString *key in dict) {
43            if (result.length)
44                [result appendString:@"&"];
45            [result appendString:[self base64Escape:key]];
46            [result appendString:@"="];
47            [result appendString:[self base64Escape:dict[key]]];
48        }
49    }
50    return result;
51}
52/**
53 * 通用的请求API服务的方法
54 */
55- (void)custom_apiRequestWithURL:(NSString *)URL
56                       withToken:(NSString *)token
57                   options:(NSDictionary *)options {
58    NSLog(@"start......");
59    
60    NSDictionary *getParams = @{
61                                @"access_token": token
62                                };
63    NSLog(@"------------%@",getParams);
64    
65    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?%@", URL, [iocrDemo wwwFormWithDictionary:getParams]]];
66    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
67    [request setHTTPMethod:@"POST"];
68    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
69    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
70    
71    NSString *formData = [iocrDemo wwwFormWithDictionary:options];
72    [request setHTTPBody:[formData dataUsingEncoding:NSUTF8StringEncoding]];
73    // 开始发送请求,并把服务器返回的数据放到data变量里面
74    NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
75    //把网页的原始数据解析出来并保存在字典里面,这里说的是json数据解析
76    NSString *zhuanma = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
77    //把字典里面的数据转化为我们能看得懂的中文或者英文。
78    NSLog(@"%@",zhuanma);//打印测试数据是否成功获取
79}
80
81- (void) iocr_regenize:(NSData *)image_b64 :(NSString *)templateID :(NSString *)classifierId :(NSString *)token{
82    
83    NSDictionary * options = nil;
84    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:options];
85    
86    dict[@"image"] = [image_b64 base64EncodedStringWithOptions:0];
87    //请求分类器识别
88    dict[@"classifierId"] = classifierId;
89    //请求模板识别
90    //dict[@"templateSign"] = templateID;
91    //successHandler 成功回调 ,failHandler 失败回调
92    [self custom_apiRequestWithURL:recognise_api_url withToken:token options:dict ];
93}
94@end
95
96int main(int argc, const char * argv[]) {
97    @autoreleasepool {
98        NSString* token = @"your_access_token";
99        NSString* image_path = @"your_file_path";
100        NSString* templateSign = @"your_templateSign";
101        NSString* classifierId = @"your_classifier_id";
102        iocrDemo *i_demo = [iocrDemo new];
103        // 获取本地图片的base64
104        NSData *image_b64 = [i_demo get_image_b64:image_path];
105        // 请求识别
106        [i_demo iocr_regenize:image_b64 :templateSign :classifierId :token];
107    }
108    return 0;
109}
        返回说明
返回参数
| 字段 | 是否必选 | 类型 | 说明 | 
|---|---|---|---|
| logid | 是 | uint64 | 唯一的log id,用于问题定位 | 
| error_code | 是 | int | 0代表成功,如果有错误码返回可以参考错误码列表排查问题 | 
| error_msg | 是 | string | 如果error_code具体的失败信息,可以参考下方错误码列表排查问题 | 
| data | 是 | jsonObject | 识别返回的结果 | 
| + isStructured | 是 | string | 表示是否结构化成功,true为成功,false为失败;成功时,返回结构化的识别结果;失败时,如果能识别,按行返回识别结果,如果不能识别,返回空 | 
| + templateSign | 否 | string | 图片分类结果对应的模板id或指定使用的模版id | 
| + scores | 否 | float | 分类置信度,如果指定templateSign,则该值为1 | 
| + ret | 否 | jsonArray | 识别出来的字段数组,每一个单元里包含以下几个元素 | 
| ++ word_name | 否 | string | isStructured 为 true 时存在,表示字段的名字;如果 isStructured 为 false 时,不存在 | 
| ++ word | 否 | string | 识别的字符串或单字 | 
| ++ location | 否 | jsonObject | 字段在原图上对应的矩形框 | 
| ++ probability | 否 | jsonObject | 字段的置信度,包括平均、最小和方差 | 
返回示例
                JSON
                
            
            1{
2    "data": {
3        "ret": [
4            {
5                "probability": {
6                    "average": 0.998482,
7                    "min": 0.9957,
8                    "variance": 0.000002
9                },
10                "location": {
11                    "height": 88,
12                    "left": 1202,
13                    "top": 437,
14                    "width": 267
15                },
16                "word_name": "终点站",
17                "word": "天津"
18            },
19            {
20                "probability": {
21                    "average": 0.994316,
22                    "min": 0.629856,
23                    "variance": 0.000281
24                },
25                "location": {
26                    "height": 82,
27                    "left": 359,
28                    "top": 593,
29                    "width": 660
30                },
31                "word_name": "发车时间",
32                "word": "201706092107"
33            },
34            {
35                "probability": {
36                    "average": 0.998482,
37                    "min": 0.9957,
38                    "variance": 0.000002
39                },
40                "location": {
41                    "height": 90,
42                    "left": 432,
43                    "top": 432,
44                    "width": 261
45                },
46                "word_name": "始发站",
47                "word": "北京南"
48            },
49            {
50                "probability": {
51                    "average": 0.952242,
52                    "min": 0.77037,
53                    "variance": 0.008272
54                },
55                "location": {
56                    "height": 79,
57                    "left": 879,
58                    "top": 464,
59                    "width": 252
60                },
61                "word_name": "车次",
62                "word": "C2097"
63            },
64            {
65                "probability": {
66                    "average": 0.980604,
67                    "min": 0.932502,
68                    "variance": 0.000352
69                },
70                "location": {
71                    "height": 74,
72                    "left": 982,
73                    "top": 877,
74                    "width": 206
75                },
76                "word_name": "乘车人",
77                "word": "向宇波"
78            },
79            {
80                "probability": {
81                    "average": 0.994155,
82                    "min": 0.903164,
83                    "variance": 0.000396
84                },
85                "location": {
86                    "height": 65,
87                    "left": 1171,
88                    "top": 593,
89                    "width": 248
90                },
91                "word_name": "座位号",
92                "word": "07车无座"
93            },
94            {
95                "probability": {
96                    "average": 0.993914,
97                    "min": 1.2888,
98                    "variance": 0.000009
99                },
100                "location": {
101                    "height": 67,
102                    "left": 429,
103                    "top": 674,
104                    "width": 193
105                },
106                "word_name": "价格",
107                "word": "54.50"
108            }
109        ],
110        "templateSign": "1c65a67f151df56ba4e29c4dddace5ee",
111        "scores": 1,
112        "isStructured": true,
113        "logId": "153206517722624"
114    },
115    "error_code": 0,
116    "error_msg": ""
117}
            