Queue - Python

本教程展示如何在Python应用程序中使用LEADTOOLS云服务对任务进行排队。

概述
总结 本教程介绍如何制作队列请求并使用Python应用程序中的LEADTOOLS云服务处理结果。
完成时间 30分钟
项目 下载教程项目(7kb)
平台 LEADTOOLS云服务API
IDE Visual Studio 2019
语言 Python
开发许可 下载LEADTOOLS
用另一种语言试试

所需的知识

请务必查看以下站点,以获得有关LEADTOOLS云服务API的信息。

服务计划

LEADTOOLS服务计划提供:

服务计划 描述
免费试用 免费评估
页面包 预付费页包
订阅 预付月处理页

要进一步了解这些产品,请参阅托管云服务页面。

如需获取应用ID和应用密码,请参见使用LEADTOOLS托管云服务创建帐户和应用程序

添加队列代码

随着项目的创建和请求包添加后,编码就可以开始了。

解决方案资源管理器,打开Queue.py.在顶部添加以下变量。

请注意

上面写着替换为应用程序ID而且替换为应用程序密码,请务必输入相应的申请编号及密码。

制作和处理LEADTOOLS CloudServices队列请求结果的简单脚本。进口的要求导入系统导入的时间servicesUrl =“https://azure.leadtools.com/api/”#应用程序ID。appId =“替换为应用程序ID”#应用程序密码。密码=“替换为应用程序密码”#要标记为处理的文件中的第一页firstPage = 1#发送-1值将向服务指示应该处理文件中的其余页面。lastPage = -1与文件输出格式对应的Enum。我们将把一个文件转换为tif格式。fileFormat = 4我们将通过URl上传文件。也可以通过向请求添加PostFile来传递文件。每个请求只接受一个文件。#服务将使用以下优先级来确定请求试图做什么GUID > URL >请求正文内容fileURL =气管无名动脉瘘管的http://demo.leadtools.com/images/cloud_samples/ocr1 - 4.的baseUploadUrl =“{}还是?fileurl = {} 'formattedUploadUrl = baseUploadUrl。格式(servicesUrl fileURL)

添加一个request.post调用来处理还是请求并从结果中捕获GUIDrequest.text并提供给下一个部分。这将发送一个还是请求到LEADTOOLS云服务API,如果成功,将返回一个唯一标识符(GUID),然后使用这个GUID进行查询。

请求=请求。post(formattedUploadUrl, auth=(appId,密码))如果在HTTP请求旁边上传一个文件# baseUploadUrl = '{}还是'# servicesUrl = baseUploadUrl.format(servicesUrl)#file = {'file': open('path/to/file', 'rb')}#request = requests.post(# formattedRecognitionUrl, auth=(appId,密码),files =文件)如果请求。Status_code = 200:打印"发送转换请求时出错"打印(request.text)sys。退出()#文件上传成功。现在我们有了GUID,我们可以使用它来对文件的请求进行排队Guid = request.text打印服务返回的唯一ID:+ guid +“\ n”

接下来,通过提交一个查询请求使用保存的GUID。

baseQueryUrl =“{}查询?id = {} 'formattedQueryUrl = baseQueryUrl。格式(servicesUrl guid)正确的:#轮询服务以确定请求是否已完成处理请求=请求。post(formattedQueryUrl, auth=(appId,密码))返回数据= request.json()如果returnedData [“FileStatus”= 123:打破time . sleep (5)

确认后,可以对上传的文件排队执行操作。提交ExtractText而且转换请求用提供的GUID排队。

baseRecognitionUrl =“{}识别/ ExtractText吗?珍宝= {}&lastPage = {} guid = {} 'formattedRecognitionUrl = baseRecognitionUrl.format(servicesUrl, firstPage, lastPage, guid)请求=请求。post(formattedRecognitionUrl, auth=(appId,密码))如果请求。Status_code = 200:打印"发送转换请求时出错"打印(request.text)sys。退出()打印"ExtractText已成功排队"baseConversionUrl =“{}转换/转换吗?珍宝= {}&lastPage ={}格式= {}guid = {} 'formattedConversionUrl = baseConversionUrl.format(servicesUrl, firstPage, lastPage, fileFormat, guid)请求=请求。post(formattedConversionUrl, auth=(appId,密码))如果请求。Status_code = 200:打印"发送转换请求时出错"打印(request.text)sys。退出()打印"转换排队成功"

然后初始化队列进行处理运行请求,同样使用GUID。

baseRunUrl =“{}?id = {} 'formattedRunUrl = baseRunUrl。格式(servicesUrl guid)请求=请求。post(formattedRunUrl, auth=(appId, password))如果请求。Status_code = 200:打印"发送转换请求时出错"打印(request.text)sys。退出()打印"文件已成功标记为运行"

为了确认运行请求成功完成,创建一个查询.方法的所有结果ExtractText而且转换JSON格式。

正确的:#轮询服务以确定请求是否已完成处理请求=请求。post(formattedQueryUrl, auth=(appId,密码))返回数据= request.json()如果returnedData [“FileStatus”= 100:打破time . sleep (5)打印"文件已完成处理,文件状态:"+str (returnedData [“FileStatus”)))如果returnedData [“FileStatus”= 200:sys。退出()

最后,将JSON数据解析为可读的格式。

试一试打印结果:"返回djson =返回数据[“RequestData”requestObject in returnedJson:打印“服务类型:”+ requestObject [“ServiceType”])如果requestObject [“ServiceType”) = =“转换”打印返回的url:“url在requestObject[“url”]:打印(url)elif requestObject [“ServiceType”) = =“识别”而且requestObject [“RecognitionType”) = =“文本”打印“提取文本URL:”+ requestObject [“数据”])sys。退出()除了例外作为艾凡:打印“解析JSON失败”打印(str (e))

运行项目

按下运行项目F5,或选择Debug ->开始调试

如果正确地执行了这些步骤,将出现控制台,应用程序将显示从返回的JSON数据提取的文本信息和转换后的文件链接。

队列任务信息

总结

本教程展示了如何通过LEADTOOLS云服务API对任务进行排队。

另请参阅

net
iOS
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2022领德科技有限公司版权所有。