我正在使用Requests Library来发出RESTapi请求。我可以成功地获取并从服务器接收正确的响应。我试图将GET的响应保存到文件中,以便我可以操作数据。
我没有收到错误但没有写入文件:
def download_file(url, cafile, user1, pass1, local_filename):
# NOTE the stream=True parameter
r = requests.get(url,
stream=True,
auth=(user1, pass1),
verify=cafile,
headers={'content-type':'application/xml'}
)
lines = r.iter_lines()
first_line = next(lines)
for line in lines:
with open(local_filename, 'w')as g:
g.write((line)+ '/')
return (local_filename)
答案 0 :(得分:2)
通过在循环中打开文件来保持覆盖,在循环外打开一次:
with open(local_filename, 'w')cas g:
for line in lines:
'w'
会打开一个用于写入的文件,并会截断该文件,因此您只能在文件中获得一行数据。
您可以在循环中打开a
进行追加,但在循环外打开文件会更有意义。
我还会在循环中打印first_line
和每一行以确切地确认返回的内容。
答案 1 :(得分:0)
只需保存回复内容:
def download_file(url, cafile, user1, pass1, local_filename): # NOTE the stream=True
parameter r = requests.get(url, stream=True, auth=(user1, pass1), verify=cafile,
headers={'content-type':'application/xml'})
with open(local_filename, 'w') as g:
g.write(r.text)
return (local_filename)