首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSV编写器未从API调用写入新的JSON值

CSV编写器未从API调用写入新的JSON值
EN

Stack Overflow用户
提问于 2019-02-22 03:42:13
回答 1查看 49关注 0票数 0

我正在尝试将API调用的JSON结果保存到CSV。API处于for循环中,它减去一天,然后重新运行API以获得比特币的价格。然后,它应该将每个API调用保存到CSV中的一行,但它目前只保存了最后一个API调用。

如何让它为每个返回的API调用写一行?

代码语言:javascript
复制
import requests
import json
import csv

timestampCurrent = 1550698057
timestampOneWeekAgo = 1550161800
oneDay = 86400

for timestamp in range(timestampCurrent, timestampOneWeekAgo, -oneDay):
    print(timestamp)

    base_url = "https://api.gemini.com/v1/trades/btcusd"
    payload = {'timestamp' : timestamp,
                'limit_trades' : '1'}

    r = requests.get(url = base_url, params = payload)

    time = r.json()

    print(time)

# open a file for writing
bitcoincsv = open('/Users/kanye_west/Desktop/Code/Python/BitcoinTracker/bitcoinyear.csv', 'w')

# create csv writer object
csvwriter = csv.writer(bitcoincsv)

count = 0

for year in time:

    if count == 0:

        header = year.keys()
        csvwriter.writerow(header)
        count += 1

    csvwriter.writerow(year.values())

    bitcoincsv.close()

# append csv results
# save CSV file
EN

回答 1

Stack Overflow用户

发布于 2019-02-24 22:53:47

这应该是可行的。

代码语言:javascript
复制
import requests
import csv

URL = 'https://api.gemini.com/v1/trades/btcusd'

TIMESTAMP_CURRENT = 1550698057
TIMESTAMP_ONE_WEEK_AGO = 1550161800
ONE_DAY = 86400


def get_time_slot_data(timestamp):
    r = requests.get(URL, params={'timestamp': timestamp, 'limit_trades': '1'})
    if r.status_code == 200:
        return r.json()


with open('gemini.csv', 'wb') as out:
    headers_written = False
    writer = csv.writer(out)
    for timestamp in range(TIMESTAMP_CURRENT, TIMESTAMP_ONE_WEEK_AGO, -ONE_DAY):
        daily_data = get_time_slot_data(timestamp)
        if not headers_written and daily_data:
            writer.writerow(daily_data[0].keys())
            headers_written = True
        if daily_data:
            for entry in daily_data:
                writer.writerow(entry.values())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54815016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档