2015-04-22 1 views
5

J'essaie de créer un rapport en temps réel en utilisant une API qui me permet de récupérer les données dont j'ai besoin et de les renvoyer au format XML. Qu'est-ce que je veux savoir, après avoir reçu la réponse, comment puis-je l'enregistrer dans un fichier .xml localement? Ou cache, de cette façon je peux l'analyser avant d'analyser la réponse. J'utilise des requêtes car c'est la manière la plus simple de faire un appel GET selon moi. Aussi, c'est ma première question et je commence à peine à apprendre Python, j'apprécierais que vous ayez un peu de patience. Merci.Enregistrer la réponse XML à partir de l'appel GET en utilisant Python

Je regardais une question similaire mais pour JSON, pas sûr que ça marcherait même, https://stackoverflow.com/a/17519020/4821590

import requests 
import json 
solditems = requests.get('https://github.com/timeline.json') # (your url) 
data = solditems.json() 
with open('data.json', 'w') as f: 
    json.dump(data, f) 
+3

'File.open ('foo.xml'). Écrire (R.TEXT)' – jordanm

Répondre

11

Si vous voulez être en mesure d'analyser le code XML retourné avant de faire des choses avec elle, la xml tree est votre ami.

import requests 
import xml.etree.ElementTree as ET 

r = requests.get('url', auth=('user', 'pass')) 
tree = ET.parse(r.text) 
root = tree.getroot() 

Sinon, comme l'a commenté jordanm, vous pouvez simplement l'enregistrer dans un fichier et en finir avec lui.

with open('data.xml', 'w') as f: 
    f.write(r.text) 
+1

Merci, je regarde la documentation maintenant, vraiment utile. Désolé, vous n'avez pas la réputation de vous surpasser. –

+1

@JulioMontes Si la réponse est suffisante, vous pouvez la marquer comme acceptée en cliquant sur la coche à côté des boutons de vote. Si vous avez besoin d'aide ou de conseils supplémentaires, commentez ci-dessous et je vous aiderai. Ou vous pouvez attendre un peu pour voir ce que d'autres réponses arrivent :) – enigma

+1

Eh bien, je vais garder cela ouvert (je ne sais pas si c'est autorisé) et je vais me creuser un peu et voir combien de temps me reste, don ' Je ne veux pas que tout me soit remis, j'apprécie cependant. –