【问题标题】:Post pdf to api (python) returns response with wrong encoding将pdf发布到api(python)返回编码错误的响应
【发布时间】:2020-04-08 07:12:03
【问题描述】:

我正在尝试使用带有 python 的 ocr API 将 pdf 转换为文本。我使用的 API 是:https://www.convertapi.com/pdf-to-txt。当我通过网站上传文件时,它运行良好,但 API 调用存在以下问题:

Python 代码:

import requests

url ='https://v2.convertapi.com/convert/pdf/to/txt?Secret=mykey'
files = {'file': open('C:\<some_url>\filename.pdf', 'rb')}
r = requests.post(url, files=files)

API 调用工作正常,但是当我尝试通过以下方式访问响应时会出现这种情况

r.text

它返回乱码:(注意 FileData 部分)

'{"ConversionCost":4,"Files":[{"FileName":"stateoftheartKWextraction.txt","FileExt":"txt","FileSize":60179,"FileData":"QXV0b21hdGljIEtleXBocmFzZSBFeHRyYWN0aW9uOiBBIFN1cnZleSBvZiB0aGUgU3RhdGUgb2YgdGhlIEFydA0KDQpLYXppIFNhaWR1bCBIYXNhbiAgYW5kICBWaW5jZW50IE5nDQpIdW1hbiBMYW5ndWFnZSBUZWNobm9sb2d5IFJlc2VhcmNoIEluc3RpdHV0ZSBVbml2ZXJzaXR5IG9mIFRleGFzIGF0IERhbGxhcyBSaWNoYXJkc29uLCBUWCA3NTA4My0wNjg4DQp7c2FpZHVsLHZpbmNlfUBobHQudXRkYWxsYXMuZW...

即使我使用 json load 将其转换为字典,它仍然会以乱码打印文本。 我尝试将文件作为非二进制文件上传,但这不起作用(它会引发异常)。

我尝试了许多 pdf 文件,它们都是英文的。 谢谢。

【问题讨论】:

    标签: python api python-requests ocr


    【解决方案1】:

    文本已解码,因此您需要对其进行解码。我们以第一个文件为例。

    import base64
    
    r = r.json()
    text = r['Files'][0]['FileData']
    
    print(base64.b64decode(text))
    

    顺便说一句,他们似乎也有一个 Python 库,你可能想看看:https://github.com/ConvertAPI/convertapi-python

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-23
      • 2020-09-05
      • 2021-05-21
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      相关资源
      最近更新 更多