sample.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. # -*- coding: utf-8 -*-
  2. # This file is auto-generated, don't edit it. Thanks.
  3. import json
  4. import os
  5. import sys
  6. from typing import List
  7. from alibabacloud_ocr_api20210707.client import Client as ocr_api20210707Client
  8. from alibabacloud_tea_openapi import models as open_api_models
  9. from alibabacloud_darabonba_stream.client import Client as StreamClient
  10. from alibabacloud_ocr_api20210707 import models as ocr_api_20210707_models
  11. from alibabacloud_tea_util import models as util_models
  12. from alibabacloud_tea_console.client import Client as ConsoleClient
  13. from alibabacloud_tea_util.client import Client as UtilClient
  14. class Sample:
  15. def __init__(self):
  16. pass
  17. @staticmethod
  18. def create_client() -> ocr_api20210707Client:
  19. """
  20. 使用AK&SK初始化账号Client
  21. @return: Client
  22. @throws Exception
  23. """
  24. # 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
  25. # 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378659.html。
  26. config = open_api_models.Config(
  27. # 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,
  28. # access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
  29. access_key_id='LTAI5tSreWTgmQoCNE8NwKqn',
  30. # 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,
  31. # access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
  32. access_key_secret='re273RJmgwt1Oh8uVZGweSaAggll9o'
  33. )
  34. # Endpoint 请参考 https://api.aliyun.com/product/ocr-api
  35. config.endpoint = f'ocr-api.cn-hangzhou.aliyuncs.com'
  36. return ocr_api20210707Client(config)
  37. @staticmethod
  38. def main(
  39. args: List[str],
  40. ) -> None:
  41. client = Sample.create_client()
  42. # 需要安装额外的依赖库,直接点击下载完整工程即可看到所有依赖。
  43. body_stream = StreamClient.read_from_file_path('uploads/20240301172645.jpg')
  44. recognize_all_text_request = ocr_api_20210707_models.RecognizeAllTextRequest(
  45. body=body_stream,
  46. type='TrainTicket',
  47. output_figure=False,
  48. output_qrcode=False
  49. )
  50. runtime = util_models.RuntimeOptions()
  51. try:
  52. resp = client.recognize_all_text_with_options(recognize_all_text_request, runtime)
  53. # ConsoleClient.log(UtilClient.to_jsonstring(resp))
  54. data = json.loads(UtilClient.to_jsonstring(resp))
  55. if data['statusCode'] == 200:
  56. ConsoleClient.log("far:" + data['body']['Data']['SubImages'][0]['KvInfo']['KvDetails']['fare']['Value'])
  57. ConsoleClient.log("ticketNumber:" + data['body']['Data']['SubImages'][0]['KvInfo']['Data']['ticketNumber'])
  58. except Exception as error:
  59. # 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
  60. # 错误 message
  61. print(error.message)
  62. # 诊断地址
  63. print(error.data.get("Recommend"))
  64. UtilClient.assert_as_string(error.message)
  65. @staticmethod
  66. async def main_async(
  67. args: List[str],
  68. ) -> None:
  69. client = Sample.create_client()
  70. # 需要安装额外的依赖库,直接点击下载完整工程即可看到所有依赖。
  71. body_stream = StreamClient.read_from_file_path('uploads/20240301172645.jpg')
  72. recognize_all_text_request = ocr_api_20210707_models.RecognizeAllTextRequest(
  73. body=body_stream,
  74. type='TrainTicket',
  75. output_figure=False,
  76. output_qrcode=False
  77. )
  78. runtime = util_models.RuntimeOptions()
  79. try:
  80. resp = await client.recognize_all_text_with_options_async(recognize_all_text_request, runtime)
  81. ConsoleClient.log(UtilClient.to_jsonstring(resp))
  82. except Exception as error:
  83. # 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
  84. # 错误 message
  85. print(error.message)
  86. # 诊断地址
  87. print(error.data.get("Recommend"))
  88. UtilClient.assert_as_string(error.message)
  89. if __name__ == '__main__':
  90. Sample.main(sys.argv[1:])