我對python真的很陌生,只是在玩。我有腳本
------- 收到訊息 ------- {"e":"24hrMiniTicker","E":1634212481158,"s":"ADAUSDT","c":"2.19200000","o" :"2.12100000","h":"2.20000000","l":"2.10000000","v":"119875239.00000000","q":"259043876.72690000"
來自幣安流。我可以在終端中列印出這一行并將其添加到陣列中,但我想在后臺運行此腳本并讓另一個腳本用該資料填充熊貓資料框。
第一個腳本:
import websocket
import numpy as np
import config
import pandas as pd
from binance.client import Client
from binance.enums import *
message_store = np.array
SYMBOL = "adausdt"
SOCKET = "wss://stream.binance.com:9443/ws/" SYMBOL "@miniTicker"
client = Client(config.API_KEY, config.API_SECRET, tld='us')
def on_open(ws):
print('opened connection')
def on_close(ws):
print('closed connection')
def on_message(ws, message):
print('------- received message -------')
print(message)
message_store.append(message)
#x = len(message_store)
#print(x)
ws = websocket.WebSocketApp(SOCKET, on_open=on_open, on_close=on_close, on_message=on_message)
ws.run_forever()
第二個腳本:
from getprice import message_store
import pandas as pd
dataframe = pd.DataFrame(data=message_store)
print(dataframe)
ValueError:未正確呼叫 DataFrame 建構式!
任何想法如何以正確的方式做到這一點?
uj5u.com熱心網友回復:
首先,您構建的 message_store 是錯誤的,您將建構式分配給它而不是 np.array 的實體。其次,在這種情況下,您應該使用常規串列而不是 np.array ,因為:
- 構造它時,您不知道最終陣列的大小
- 該陣列包含一個物件而不是任何型別的數字資料
所以你應該使用:
message_store = []
代替
message_store = np.array
小例子:
import pandas as pd
lst = []
lst.append({"e": "24hrMiniTicker", "E": 1634212481158, "s": "ADAUSDT", "c": "2.19200000", "o": "2.12100000", "h": "2.20000000", "l": "2.10000000",
"v": "119875239.00000000", "q": "259043876.72690000"})
lst.append({"e": "24hrMiniTicker", "E": 1634212481158, "s": "ADAUSDT", "c": "2.19200000", "o": "2.12100000", "h": "2.20000000", "l": "2.10000000",
"v": "119875239.00000000", "q": "259043876.72690000"})
df = pd.DataFrame(lst)
print(df.head(5))
print(df["e"])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/315278.html
上一篇:在列內計算并基于另一列求平均值
下一篇:洗掉之前出現兩列值的行
