我一直在尝试将来自intrinio api的响应放入熊猫数据框。 Intrinio Api Endpoint我一直在使用Intrinio python sdk,但在将响应加载到熊猫时存在问题。 Intrinio Python SDK我相信如果有人要解决此问题,他们会提供免费的沙箱API。
import pandas as pd
import intrinio_sdk
#Config
intrinio_sdk.ApiClient().configuration.api_key['api_key'] = '***api_key***'
company_api = intrinio_sdk.CompanyApi()
#Request that returns intrinio object
stock = 'AAPL'
api_response = company_api.get_company_fundamentals(stock)
#Attemp to put it in dataframe
df = pd.DataFrame(api_response.fundamentals)
print(df.head(5))
#Looking at the data type
print(type(api_response.fundamentals))
#Look at first item in list
print(api_response.fundamentals[0])
数据帧头的第一个打印看起来像这样
0
0 {'end_date': datetime.date(2018, 12, 29),\n 'f...
1 {'end_date': datetime.date(2018, 12, 29),\n 'f...
2 {'end_date': datetime.date(2018, 12, 29),\n 'f...
3 {'end_date': datetime.date(2018, 12, 29),\n 'f...
4 {'end_date': datetime.date(2018, 12, 29),\n 'f...
第二次打印以查看数据类型
<class 'list'>
响应列表中第一项的第三次打印
{'end_date': datetime.date(2018, 12, 29),
'filing_date': None,
'fiscal_period': 'Q1TTM',
'fiscal_year': 2019.0,
'id': 'fun_zJ3Onm',
'start_date': datetime.date(2017, 12, 31),
'statement_code': 'calculations',
'type': None}
似乎响应是字典列表。通常熊猫会很容易地阅读它们。仅使用for循环遍历响应并重新创建另一个字典以传递到pandas似乎有效。我在想,熊猫一定不能喜欢实际上在响应数据列表中调用函数的值,例如“ datetime.date(2017,12,31)”。