Python 从另一个数据帧的列中的JSON URL生成数据帧

Python 从另一个数据帧的列中的JSON URL生成数据帧,python,json,pandas,dataframe,for-loop,Python,Json,Pandas,Dataframe,For Loop,我试图在另一个名为Data的数据帧中基于Json Url生成一个数据帧 import requests import pandas as pd import numpy as np resp = requests.get('https://financialmodelingprep.com/api/v3/company/stock/list') txt = resp.json() Data = pd.DataFrame(txt['symbolsList']) Data = Data.assig

我试图在另一个名为Data的数据帧中基于Json Url生成一个数据帧

import requests
import pandas as pd
import numpy as np

resp = requests.get('https://financialmodelingprep.com/api/v3/company/stock/list')
txt = resp.json()
Data = pd.DataFrame(txt['symbolsList'])
Data = Data.assign(keymetric= 'https://financialmodelingprep.com/api/v3/company-key-metrics/'+ Data.symbol + '?period=quarter')
Data = Data.assign(profile= 'https://financialmodelingprep.com/api/v3/company/profile/'+ Data.symbol)
Data = Data.assign(financials= 'https://financialmodelingprep.com/api/v3/financial-statement-growth/'+ Data.symbol + '?period=quarter')
我有三个问题:

1) 当我在数据框(“数据”)中下载JSON URL时,输出中没有符号 在“AAPL”下面的代码中

resp = requests.get('https://financialmodelingprep.com/api/v3/company-key-metrics/AAPL?period=quarter')
txt = resp.json()
key= pd.DataFrame(txt['metrics'])
2) 我不知道如何将上面的代码自动化,将数据框“Data”中的“keymetrics”列用作导入

3) 一旦这个过程完成,我将尝试只使用一个数据帧,而不是每个符号使用一个数据帧


keymetrics的预期输出。每一列都应该被划分,而不是全部聚合在一个名为“keymetric”的列中。

此代码可以工作

import pandas as pd
import requests

resp = requests.get('https://financialmodelingprep.com/api/v3/company/stock/list')
txt = resp.json()
Data = pd.DataFrame(txt['symbolsList'])

def get_value(symbol):
    resp_keymetric = requests.get(f'https://financialmodelingprep.com/api/v3/company-key-metrics/{symbol}?period=quarter')
    resp_profile = requests.get(f'https://financialmodelingprep.com/api/v3/company/profile/{symbol}?period=quarter')
    resp_financials = requests.get(f'https://financialmodelingprep.com/api/v3/financial-statement-growth/{symbol}?period=quarter')
    try:
        txt_keymetric = resp_keymetric.json()['metrics'][0]
        txt_profile = resp_profile.json()['profile']
        txt_financials = resp_financials.json()['growth'][0]
        df_keymetric = pd.DataFrame([txt_keymetric])
        df_profile = pd.DataFrame([txt_profile])
        df_financials = pd.DataFrame([txt_financials])
        df = pd.concat([df_keymetric, df_profile, df_financials], axis=1)
        return df
    except:
        pass

result = []
for symbol in Data['symbol'].values.tolist()[:5]:
    try:
        df = get_value(symbol)
        result.append(df)
    except:
        pass

result_df = pd.concat(result, axis=0)
print(result_df)

keymetrics的预期输出。每一列都应该划分,而不是全部聚合在一个名为“keymetric”的列下

电流输出

它正在工作,但无法正确显示数据。我尝试使用此代码修复它,但它不起作用。你有什么线索吗?没有,我还有同样的格式。它不会将每一列都视为一列,而是将所有内容放在“指标”、“个人资料”、“财务”下作为答案发布