调用python脚本接口编写

# coding=utf-8
import json
import time

from utils.concurrent_utils import extract_many, model_many
from utils.base_util import uncompress_ocr_result, get_text_lines
from utils.dynamic_anchor_log import ta_log
from utils.process_util import process_text_lines
from flask import Flask, request, jsonify
import paddle.fluid as fluid

app = Flask(__name__)

import sys
reload(sys)
sys.setdefaultencoding('UTF-8')

@app.route('/dyanmic/anchor/model',methods=['POST'])
def dyanmic_anchor_model():
    time1 = time.time()
    try:
        data = request.get_json('data')
        ta_log.info(data)
        configs = json.loads(data['model_label'])
        picture_bbox = data['picture_bbox']
        ocr_result = data['ocr_result']
        all_json = data['all_json_url']
    except Exception as e:
        ta_log.error(e)
        return jsonify({
            'data': [],
            'message': 'not json type',
            'code': 404,
        }),'404 not json'
    if ocr_result:
        ocr_result = uncompress_ocr_result(ocr_result)
        if not ocr_result:
            return jsonify({
            'data': [],
            'message': 'not base64',
            'code': 404,
        }),'404 not base64'
        result = process_text_lines(ocr_result)
        texts = get_text_lines(result, picture_bbox)
    elif all_json:
        texts = all_json
    else:
        return jsonify({
        'data':[],
        'message': 'empty parsing',
        'code':404,
    }),'404 empty parsing'
    data_list = model_many(configs,texts)
    if data_list == -1:
        return jsonify({
            'data': [],
            'message': 'The json url has failed',
            'code': 404,
        }),'404 The json url has failed'
    response_data = {
        'data':data_list,
        'message':'ok',
        'code': 200,
    }
    time2 = time.time()
    all_time = time2 - time1
    print all_time
    ta_log.info(response_data)
    print(response_data)
    return jsonify(response_data)
    # return json.dumps(response_data)

@app.route('/dyanmic/anchor/extract',methods=['POST'])
def dyanmic_anchor_extract():
    time1 = time.time()
    try:
        data = request.get_json('data')
        # print data
        ta_log.info(data)
        # data['model_message'] = re.sub(r"\\s",r"\\\s",data['model_message'])
        msg_dict_list = json.loads(data['model_message'])
        picture_bbox = data['picture_bbox']
        ocr_result = data['ocr_result']
        all_json = data['all_json_url']
    except Exception as e:
        ta_log.error(e)
        return jsonify({
            'data': [],
            'message': 'not json type',
            'code': 404,
        }), '404 not json'
    if ocr_result:
        ocr_result = uncompress_ocr_result(ocr_result)
        result = process_text_lines(ocr_result)
        texts = get_text_lines(result, picture_bbox)
    elif all_json:
        texts = all_json
    else:
        return jsonify({
            'data': [],
            'message': 'empty parsing',
            'code': 404,
        }),'404 empty parsing'
    data_list = extract_many(msg_dict_list,texts)
    if data_list == -1:
        return jsonify({
            'data': [],
            'message': 'The json url has failed',
            'code': 404,
        }),'404 The json url has failed'
    response_data = {
        'data': data_list,
        'message': 'ok',
        'code': 200,
    }
    time2 = time.time()
    all_time = time2 - time1
    print all_time
    ta_log.info(response_data)
    return jsonify(response_data)

@app.route('/',methods=['GET','POST'])
def index():
    return jsonify({
            'data': [],
            'message': 'The json url has failed'
        }),'404 The json url has failed'
if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=True,port=5636)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值