繁体   English   中英

Python 遍历 json object 内部的数组

[英]Python iterate through an array inside json object

这里有点丢失......试图在 json object 中迭代这个数组:

{
"NULSBUSD": {
    "symbol": "NULSBUSD",
    "orderId": 33523092,
    "orderListId": -1,
    "clientOrderId": "54Re4e4iV0bCkIXKyth4Sc",
    "transactTime": 1659875121897,
    "price": "0.00000000",
    "origQty": "187.00000000",
    "executedQty": "187.00000000",
    "cummulativeQuoteQty": "50.10100000",
    "status": "FILLED",
    "timeInForce": "GTC",
    "type": "MARKET",
    "side": "BUY",
    "fills": [
        {
            "price": "0.26790000",
            "qty": "150.00000000",
            "commission": "0.00009529",
            "commissionAsset": "BNB",
            "tradeId": 669893
        },
        {
            "price": "0.26800000",
            "qty": "37.00000000",
            "commission": "0.00002350",
            "commissionAsset": "BNB",
            "tradeId": 669894
        }
    ],
    "delta": 0,
    "tsp": 0.264528
}

}

这段代码抛出

字符串索引必须是整数

qty = 0.0
for coin in order:
for fill in coin['fills']:
qty += float(fill['qty'])

任何想法我如何 go 关于它? 谢谢!

这就是你需要的:

qty = 0.0
for coin in order:
    obj = order[coin]
    for fill in obj['fills']:
        qty += float(fill['qty'])
print(qty)

您可以在一行中执行此操作:

print(sum(float(fill['qty']) for coin in order for fill in order[coin]['fills']))

Output:

187.0

如果你这样做:对于 key in order,这里的 key 是一个字符串:)

这里使用 dataframe 来避免循环 -

import pandas as pd
import json

with open("data.json") as f:
    json_data = json.load(f)
 
for coin in json_data:
    df = pd.DataFrame(json_data[coin]["fills"])

df["qty"].astype("float").sum()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM