如何在Python(Binance Futures API)中将列表转换为DataFrame



使用Binance Futures API,我正在努力获得关于加密货币的正确头寸。使用代码

from binance_f import RequestClient
request_client = RequestClient(api_key= my_key, secret_key=my_secet_key)
result = request_client.get_position()

我得到以下结果

[{"symbol":"BTCUSDT","positionAmt":"0.000","entryPrice":"0.00000","markPrice":"5455.13008723","unRealizedProfit":"0.00000000","liquidationPrice":"0","leverage":"20","maxNotionalValue":"5000000","marginType":"cross","isolatedMargin":"0.00000000","isAutoAddMargin":"false"}]

type命令表示它是一个列表,但在代码print(result)的末尾添加会产生:

[<binance_f.model.position.Position object at 0x1135cb670>]

这很令人困惑,因为它似乎不是列表(事实上,调试它指示Position类型的对象(。使用PrintMix.print_data(result)产量:

data number 0 :
entryPrice:0.0
isAutoAddMargin:True
isolatedMargin:0.0
json_parse:<function Position.json_parse at 0x1165af820>
leverage:20.0
liquidationPrice:0.0
marginType:cross
markPrice:5442.28502271
maxNotionalValue:5000000.0
positionAmt:0.0
symbol:BTCUSDT
unrealizedProfit:0.0

现在它看起来像是一个JSON格式。。。但这是一份清单。我很困惑——有什么想法可以把结果转换成一个合适的DataFrame吗?所以列是Symbol, PositionAmt, entryPrice, etc.

谢谢!

您的主要问题仍然是在标题上写的,您不应该感到困惑。在你的例子中,你有一个Position对象的列表,你可以在这个库的GitHub中看到Position的结构

无论如何,要回答这个问题,请使用以下内容:

df = pd.DataFrame([t.__dict__ for t in result])

欲了解更多选项和信息,请阅读这个问题的精彩答案

祝你好运!

您可以使用

df = pd.DataFrame([t.__dict__ for t in result])
klines=df.values.tolist()
open = [float(entry[1]) for entry in klines]
high = [float(entry[2]) for entry in klines]
low = [float(entry[3]) for entry in klines]                               
close = [float(entry[4]) for entry in klines]

最新更新