提问人:WindSwept 提问时间:6/25/2021 最后编辑:martineauWindSwept 更新时间:6/25/2021 访问量:2750
将 API 的响应保存到 csv 文件
save response from API to csv file
问:
我是python的新学习者。我正在使用一些调用 api 并获得 csv 格式响应的 python 代码。我想知道如何将 csv 响应保存到 csv fie。
#! /usr/bin/env python
import httplib2
# These aren't needed, just for this example
from pprint import pformat
from datetime import datetime
import pytz
from pvlive_api import PVLive
import pandas as pd
import json
def post_elexon(url):
http_obj = httplib2.Http()
resp, content = http_obj.request(
uri=url,
method='GET',
headers={'Content-Type': 'application/xml; charset=UTF-8'},)
return resp, content
def main():
resp, content = post_elexon(url='https://api.bmreports.com/BMRS/B1770/v1?APIKey=MY_API_KEY&SettlementDate=2015-03-01&Period=1&ServiceType=csv',)
print ("===Response===")
print (resp)
print ("===Content===")
print (pformat(content))
print ("===Finished===")
if __name__ == "__main__":
main()
任何帮助,建议将不胜感激。
谢谢
答:
1赞
Benjamin T. Schwertfeger
6/25/2021
#1
试试这个:
import csv
with open('out.csv', 'w') as f:
writer = csv.writer(resp)
for line in resp.iter_lines():
writer.writerow(line.decode('utf-8').split(','))
编辑:
我测试了您的请求 - 它返回一个 json。
因此,您可以将其保存为 json:
with open('response.json', 'w') as f:
json.dump(resp, f)
评论
0赞
WindSwept
6/25/2021
感谢您的回复,但我收到错误:参数 1 必须具有“写入”方法。代码应该从哪里开始:打开.....被安置?
0赞
WindSwept
6/25/2021
为此,它不会产生任何错误,但是在哪里创建/保存json文件?
1赞
WindSwept
6/25/2021
忽略我的最后一条评论,我可以看到它,如果我给 out.csv 提供文件路径,例如使用 open('C:\Test\response.json),我可以设置保存 json 的位置吗?
0赞
WindSwept
6/26/2021
感谢所有的帮助。我真的很感激。如果我想将 api 调用(content)返回的内容写入 csv 文件 - 如何实现?
0赞
Benjamin T. Schwertfeger
6/26/2021
您的内容采用XML格式。我没有有效的 API 密钥来读取真实内容及其属性。看看这些: geeksforgeeks.org/convert-xml-to-csv-in-python 和 stackoverflow.com/questions/31844713/convert-xml-to-csv-file 将XML转换为csv。祝你好运。(:
评论