我是api编程新手。我正在尝试从moex api下载数据。
以下是我使用的代码:
import requests as re
from io import StringIO
import pandas as pd
import json
session = re.Session()
login = "aaaa"
password = "bbbb"
session.get('https://passport.moex.com/authenticate', auth=(login, password))
cookies = {'MicexPassportCert': session.cookies['MicexPassportCert']}
def api_query(engine, market, session, secur, from_start, till_end):
param = 'https://iss.moex.com/iss/history/engines/{}/markets/{}/sessions/{}/securities/{}/candles.json?from={}&till={}&interval=24&start=0'.format(engine, market, session, secur, from_start, till_end)
return param
url = api_query('stock', 'bonds', 'session', 'RU000A0JVWL2', '2020-11-01', '2021-05-01')
response = re.get(url, cookies=cookies)
因此,我获得了以下数据(部分数据)
'history.cursor': {'metadata': {'INDEX': {'type': 'int64'}, 'TOTAL': {'type': 'int64'}, 'PAGESIZE': {'type': 'int64'}}, 'columns': ['INDEX', 'TOTAL', 'PAGESIZE'], 'data': [[0, 32, 100]]}}
我需要将json格式转换为 Dataframe 。怎么做?因此,我应该得到一行三列的dataframe。
提前谢谢
2条答案
按热度按时间bf1o4zei1#
假设您的json编码正确,您可以尝试以下方法:
b5lpy0ml2#
你应该使用这个方法
pd.io.json.read_json()
方法你的取向可能是“分裂”
所以
pd.read_json(json,orient='split')
其中,split是类似dict的json格式{index -> [index], columns -> [columns], data -> [values]}