安排api请求并保存到dataframe

2024-09-30 10:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从api中提取数据。我想安排此任务,使其每半小时请求一次api,并将结果附加到数据帧。然而,api响应是一个嵌套字典,因此我必须进行一些解析。我读到应该使用列表而不是数据帧来将数据附加到函数中。到目前为止,我的代码如下所示:

import pandas as pd
import requests
from pandas.io.json import json_normalize
import schedule
import time

resp = requests.get(url).json()
df=[]
def fetch_here():
        global df
        r2=json_normalize(resp,record_path=["RWS","RW"])
        r=json_normalize(resp["RWS"],record_path=["RW","FIS","FI"])
        r1=json_normalize(resp["RWS"],record_path=["RW","FIS","FI","CF"])
        workFrame = pd.concat([r, r1], axis=1, sort=False)
        workFrame = workFrame.drop(['SHP',"CF","SSS.SS"], 1)
        time=r2["PBT"]
        workFrame["Time"]=time
        workFrame=workFrame.fillna(method="ffill")
        df=df.append(workFrame)

#Time
schedule.every(30).minutes.do(fetch_here)

while True:
    schedule.run_pending()
    time.sleep(1)

但是我得到了错误:UnboundLocalError: local variable 'df' referenced before assignment。 我想最好将解析结果存储为一个列表,然后追加? 但我不知道如何将json规范化为列表。 希望有人能帮忙。谢谢


Tags: 数据pathimportapijsondf列表time

热门问题