我的問題是如何解決這個 AttributeError ,這是代碼:
import pandas as pd
import sqlalchemy
from binance import Client
from binance import BinanceSocketManager
client = Client('api', 'secret_api')
bsm = BinanceSocketManager(client)
socket = bsm.trade_socket('BTCUSDT')
while True:
await socket.__aenter__()
msg = await socket.recv()
frame = createframe(msg)
frame.to_sql('BTCUSDT', engine, if_exists='append', index=False)
print(frame)
但它向我提出了以下錯誤:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_11340/3652326046.py in <module>
3 msg = await socket.recv()
4 frame = createframe(msg)
----> 5 frame.to_sql('BTCUSDT', engine, if_exists='append', index=False)
6 print(frame)
AttributeError: 'NoneType' object has no attribute 'to_sql'
這是“createframe”函式:
def createframe(msg):
df = pd.DataFrame([msg])
df = df.loc[:,['s','E','p']]
df.columns = ['symbol','Time','Price']
df.Price = df.Price.astype(float)
df.Time = pd.to_datetime(df.Time, unit='ms')
uj5u.com熱心網友回復:
看來您的createframe方法沒有回傳任何內容。我建議您將其更改為:
def createframe(msg):
df = pd.DataFrame([msg])
df = df.loc[:,['s','E','p']]
df.columns = ['symbol','Time','Price']
df.Price = df.Price.astype(float)
df.Time = pd.to_datetime(df.Time, unit='ms')
return df # Here is the change where it returns your DataFrame to where it is called from
我希望這行得通。無法真正發布更多資訊,因為我們對您的問題缺乏更多背景
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442517.html
標籤:Python sql 熊猫 jupyter-笔记本 算法交易
