web-dev-qa-db-fra.com

Enregistrement de la réponse des demandes au fichier

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
19
Chris J. Vargo

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/

4
Sait

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()
8
bhawnesh dipu