Post pdf to api (python) возвращает ответ с неправильной кодировкой - PullRequest
1 голос
/ 08 апреля 2020

Я пытаюсь использовать ocr API с python для преобразования 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

, он возвращает giberi sh: (обратите внимание на раздел FileData)

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

Даже если я использую json load, чтобы преобразовать его в dict, он по-прежнему печатает текст в гибери sh. Я попытался загрузить файл как не двоичный файл, но это не работает (он выдает исключение).

Я пробовал много файлов PDF, и все они были в английском sh. Спасибо.

1 Ответ

1 голос
/ 08 апреля 2020

Текст декодируется, поэтому вам нужно его декодировать. Давайте возьмем первый файл в качестве примера.

import base64

r = r.json()
text = r['Files'][0]['FileData']

print(base64.b64decode(text))

Кстати, у них, похоже, также есть библиотека Python, вы можете проверить это: https://github.com/ConvertAPI/convertapi-python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...