J'utilise requêtes pour télécharger un pdf vers une API. Il est enregistré comme "réponse" ci-dessous. J'essaie d'écrire cela dans un fichier Excel.
import requests
files = {'f': ('1.pdf', open('1.pdf', 'rb'))}
response = requests.post("https://pdftables.com/api?&format=xlsx-single",files=files)
response.raise_for_status() # ensure we notice bad responses
file = open("out.xls", "w")
file.write(response)
file.close()
Je reçois l'erreur:
file.write(response)
TypeError: expected a character buffer object
Comme Peter l'a déjà souligné:
In [1]: import requests
In [2]: r = requests.get('https://api.github.com/events')
In [3]: type(r)
Out[3]: requests.models.Response
In [4]: type(r.content)
Out[4]: str
Vous pouvez également vérifier r.text
.
Aussi: http://docs.python-requests.org/en/latest/user/quickstart/
Vous pouvez utiliser le response.text
pour écrire dans un fichier:
import requests
files = {'f': ('1.pdf', open('1.pdf', 'rb'))}
response = requests.post("https://pdftables.com/api?&format=xlsx-single",files=files)
response.raise_for_status() # ensure we notice bad responses
file = open("resp_text.txt", "w")
file.write(response.text)
file.close()
file = open("resp_content.txt", "w")
file.write(response.text)
file.close()