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

How to convert list into DataFrame in Python (Binance Futures API)

使用 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.

谢谢!

你的主要问题和你在 header 上写的一样,你不应该感到困惑。在你的情况下,你有一个 Position object 的列表,你可以在 GitHub of this library

中看到 Position 的结构

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

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

有关更多选项和信息,请阅读 this question

上的精彩答案

祝你好运!