本教程展示如何在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对任务进行排队。