第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 Polygon api 轉儲 json 響應的有效方法是什么?

從 Polygon api 轉儲 json 響應的有效方法是什么?

滄海一幻覺 2023-07-18 10:24:03
我正在從Polygon?api 下載數(shù)據(jù),在檢查文檔后,我意識到響應大小存在某種速率限制,每個請求將包含 5000 條記錄。假設我需要下載幾個月的數(shù)據(jù),看起來沒有一個單行解決方案可以一次性獲取指定時間段內的所有數(shù)據(jù)。以下是我使用的 4 天數(shù)據(jù)點的響應requests.get('query').json():{? ?"ticker":"AAPL",? ?"status":"OK",? ?"queryCount":4,? ?"resultsCount":4,? ?"adjusted":True,? ?"results":[? ? ? {? ? ? ? ?"v":152050116.0,? ? ? ? ?"vw":132.8458,? ? ? ? ?"o":132.76,? ? ? ? ?"c":134.18,? ? ? ? ?"h":134.8,? ? ? ? ?"l":130.53,? ? ? ? ?"t":1598932800000,? ? ? ? ?"n":1? ? ? },? ? ? {? ? ? ? ?"v":200117202.0,? ? ? ? ?"vw":131.6134,? ? ? ? ?"o":137.59,? ? ? ? ?"c":131.4,? ? ? ? ?"h":137.98,? ? ? ? ?"l":127,? ? ? ? ?"t":1599019200000,? ? ? ? ?"n":1? ? ? },? ? ? {? ? ? ? ?"v":257589206.0,? ? ? ? ?"vw":123.526,? ? ? ? ?"o":126.91,? ? ? ? ?"c":120.88,? ? ? ? ?"h":128.84,? ? ? ? ?"l":120.5,? ? ? ? ?"t":1599105600000,? ? ? ? ?"n":1? ? ? },? ? ? {? ? ? ? ?"v":336546289.0,? ? ? ? ?"vw":117.9427,? ? ? ? ?"o":120.07,? ? ? ? ?"c":120.96,? ? ? ? ?"h":123.7,? ? ? ? ?"l":110.89,? ? ? ? ?"t":1599192000000,? ? ? ? ?"n":1? ? ? }? ?],? ?"request_id":"bf5f3d5baa930697621b97269f9ccaeb"}我認為最快的方法是按原樣編寫內容并稍后處理with open(out_file, 'a') as out:? ? out.write(f'{response.json()["results"][0]}\n')稍后,在我下載所需的內容后,將讀取該文件并使用 pandas 將數(shù)據(jù)轉換為 json 文件:pd.DataFrame([eval(item) for item in open('out_file.txt')]).to_json('out_file.json')有沒有更好的方法來實現(xiàn)同樣的目標?如果有人熟悉 scrapy feed 導出,有沒有一種方法可以在運行期間將數(shù)據(jù)轉儲到 json 文件而不將任何內容保存到內存中,我認為這與 scrapy 操作的方式相同。
查看完整描述

1 回答

?
料青山看我應如是

TA貢獻1772條經(jīng)驗 獲得超8個贊

不要將內容寫為文本,而是直接將其寫為 JSON,而不是使用唯一的文件名(例如您的request_id)。


import json


# code for fetching data omitted.

data = response.json()


with open(out_file, 'w') as f:

? ? json.dump(data, f)

然后你可以將它們全部加載到 Dataframes 中,

from pathlib import Path # Python 3.5+


import pandas as pd


dfs = []


for path in Path('dumped').rglob('*.json'):

? ? tmp = pd.read_json(path)

? ? dfs.append(tmp)


df = pd.concat(dfs, ignore_index=True)


查看完整回答
反對 回復 2023-07-18
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號