2015-04-22 50 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

好吧,我会保持这个开放(不知道是否允许),并做一些挖掘我自己,看看我得到了多少,我希望这一切都交给我,但我很欣赏它。 –