【问题标题】:save response from API to csv file将 API 的响应保存到 csv 文件
【发布时间】:2021-09-08 23:35:05
【问题描述】:

我是 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()

任何帮助,建议将不胜感激。

谢谢

【问题讨论】:

标签: python api csv httplib2


【解决方案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)

【讨论】:

  • 感谢您的回复,但我收到错误:参数 1 必须具有“写入”方法。应该在哪里开始的代码:with open..... 放在哪里?
  • 很多问题,它不会产生任何错误,但 json 文件在哪里创建/保存?
  • 忽略我的最后一条评论,我可以看到,如果我给 out.csv 提供文件路径,例如使用 open('C:\Test\response),我可以设置保存 json 的位置吗.json)
  • 感谢所有帮助。对此,我真的非常感激。如果我想将 api 调用返回的内容(内容)写入 csv 文件 - 如何实现?
  • 您的内容是 XML 格式。我没有有效的 API 密钥来读取真实内容及其属性。看看这些:geeksforgeeks.org/convert-xml-to-csv-in-pythonstackoverflow.com/questions/31844713/convert-xml-to-csv-file 将 XML 转换为 csv。祝你好运。 (:
猜你喜欢
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
相关资源
最近更新 更多