初心者のため方法がわかりません。
アイデアを下さい。
【やりたいこと】
APIから毎秒受け取る辞書型のデータを整えてcsvに1時間ごとに出力したい。
https://github.com/ccxt/ccxt/wiki/Manual
ここのfetc_order_bookを使いたいです。
【うまくいかない部分】
APIから受け取るのは以下の辞書型のデータです。
'bids': [[1197426.0, 0.03882239], [1197395.0, 0.0055], [1197394.0, 0.0741403], [1197392.0, 0.001], [1197341.0, 0.08875373], [1197320.0, 0.01999716], [1197310.0, 0.03551], [1197279.0, 0.001], [1197269.0, 0.05], [1197268.0, 0.2], [1197266.0, 0.01998774], [1197261.0, 0.02003151], [1197238.0, 0.03], [1197236.0, 0.01], [1197235.0, 0.17386665], [1197225.0, 0.001], [1197211.0, 0.02], [1197210.0, 0.05], [1197200.0, 0.21685433], [1197150.0, 0.102], [1197144.0, 0.00847]], 'asks': [[1197663.0, 0.002], [1197666.0, 0.132], [1197667.0, 0.0276], [1197699.0, 0.01], [1197700.0, 0.06941974], [1197748.0, 0.08315269], [1197759.0, 0.00425625], [1197794.0, 0.00117761], [1197815.0, 0.02003151], [1197824.0, 0.05], [1197825.0, 0.11], [1197831.0, 0.01], [1197837.0, 0.02], [1197845.0, 0.0251], [1197881.0, 0.01998774], [1197891.0, 0.02], [1197893.0, 0.15], [1197897.0, 0.01999716], [1197907.0, 0.03900977], [1197958.0, 0.001], [1197963.0, 0.15]]
これを、bidprice1:1197426.0,bidsize1:0.03882239...
という風にcsvに出したいので、それぞれの[]の中の1番目をprice2番目をsizeに関連付けたいのですが、うまくいきません。
自分で調べながら以下のコードを書いてみたのですが、以下のエラーが出てしまいます。
"'dict' object cannot be interpreted as an integer"
何か根本的な部分が間違っているのでしょうか。
こんな風に構成したらいいよ、といったような汎用的なアドバイスでも構いませんので、アドバイスいただけると幸いです。
よろしくお願いいたします。
python
1 2#板データの取得 3exchange = ccxt.bitflyer() 4exchange.load_markets() 5#通貨ペア 6symbol = 'BTC/JPY' 7#板の深さ 8limit = 10 9#スリープ秒数 10sleep = 1 11 12 13#板データの取得 14def get_board(): 15 order_book = exchange.fetch_order_book(symbol) 16 market_depth = exchange.fetch_order_book(symbol,limit) 17 dict_data = {'time' : dt.now()} #現在時刻の取得 18 dict_data.update({'ask_price_{}'.format(i): order_book['asks'][0][0] for i in range(market_depth)}) 19 dict_data.update({'ask_size_{}'.format(i): order_book['asks'][0][0] for i in range(market_depth)}) 20 dict_data.update({'bid_price_{}'.format(i): order_book['bids'][0][0] for i in range(market_depth)}) 21 dict_data.update({'bid_size_{}'.format(i): order_book['bids'][0][0] for i in range(market_depth)}) 22 return pd.Series(dict_data)
回答1件
あなたの回答
tips
プレビュー