我似乎无法在websockets中的python中保存json数据

时间:2019-06-18 15:46:52

标签: json python-3.x pandas websocket

我正在通过api和python websocket连接以流式传输数据。 数据以json格式到达。但是,我似乎无法将数据保存到本地驱动器中。 我尝试了熊猫数据帧:panda.DataFrame(json_data).to_csv(fileLoc,orient ='records')。它也不起作用。

任何专家的想法为何我似乎都无法将其保存下来...

import time
import base64
import hashlib
import hmac
from urllib.parse import urlencode
from urllib.request import Request, urlopen
import websocket
import json
import secrets
from datetime import datetime

import numpy as np
import pandas as pd

api_key = ''
api_secret = ''
tstamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "000"
data = ''
nonce = secrets.token_urlsafe(10)

base_signature_string = tstamp + "\n" + nonce + "\n" + data

byte_key = api_secret.encode()
message = base_signature_string.encode()
signature = hmac.new(byte_key, message, hashlib.sha256).hexdigest()

print(signature)



def main():
    fileLoc = 'C://supp_1.json'

    def on_message(ws, message):
        #print("received:")
        # what to do when receiving messages
        #print(message)
        T_msg = json.loads(message)['params']['data']
        print(T_msg)
        json.dump(T_msg, fileLoc)

    def on_error(ws, error):
        print(error)

    def on_close(ws):
        print("### closed ###")

    def on_open(ws):
        ws_data = \
    {"jsonrpc": "2.0",
     "method": "public/subscribe",
     "id": 42,
     "params": {
        "channels": ["quote.BTC-PERPETUAL"]}
    }
        str = json.dumps(ws_data)
        print(str)
        ws.send(str)

    #websocket.enableTrace(True)
    ws = websocket.WebSocketApp("wss://test.deribit.com/ws/api/v2/",
                              on_message = on_message,
                              on_error = on_error,
                              on_close = on_close)
    ws.on_open = on_open

    ws.run_forever()


#if __name__ == "__main__":
#    main()
main()

这是jupyter屏幕上的输出.....

{"jsonrpc": "2.0", "method": "public/subscribe", "id": 42, "params": {"channels": ["quote.BTC-PERPETUAL"]}}
{'timestamp': 1560872513030, 'instrument_name': 'BTC-PERPETUAL', 'best_bid_price': 9060.0, 'best_bid_amount': 280130.0, 'best_ask_price': 9060.5, 'best_ask_amount': 900.0}
{'timestamp': 1560872514860, 'instrument_name': 'BTC-PERPETUAL', 'best_bid_price': 9060.0, 'best_bid_amount': 280130.0, 'best_ask_price': 9061.5, 'best_ask_amount': 560.0}
{'timestamp': 1560872514892, 'instrument_name': 'BTC-PERPETUAL', 'best_bid_price': 9060.0, 'best_bid_amount': 280130.0, 'best_ask_price': 9061.5, 'best_ask_amount': 100.0}

0 个答案:

没有答案