2015-04-22 97 views
5

我正在嘗試使用API​​來創建實時報告,該API允許我獲取需要的數據並以XML格式返回。我想知道的是,在收到響應後,如何將其保存到本地的.xml文件中?或者緩存它,這樣我可以在解析響應之前解析它。使用Python保存來自GET調用的XML響應

import requests 
r = requests.get('url', auth=('user', 'pass')) 

我正在使用請求,因爲這是在我看來進行GET調用的最簡單方法。另外,這是我的第一個問題,我幾乎沒有開始學習Python,如果你們有一點耐心,我會很感激。謝謝。

我一直在尋找一個類似的問題,但對於JSON,不知道這是否會工作一樣,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')。寫(r.text)' – jordanm

回答

11

如果你希望能夠用它做的東西之前,解析返回的XML時, xml tree是你的朋友。

import requests 
import xml.etree.ElementTree as ET 

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

否則,正如jordanm所評論的那樣,您可以將其保存到一個文件並完成它。

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

謝謝,我在看文檔現在,真的很有幫助。對不起,沒有聲望讓你高興。 –

+1

@JulioMontes如果答案足夠了,您可以通過點擊投票按鈕旁邊的勾號將其標記爲已接受。如果您需要額外的幫助或提示,請在下面評論,我會幫助你。或者你可以等待一下,看看還有什麼其他的答案:) – enigma

+1

好吧,我會保持這個開放(不知道是否允許),並做一些挖掘我自己,看看我得到了多少,我希望這一切都交給我,但我很欣賞它。 –