如何读取嵌套的json转储

2024-06-26 13:46:04 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,伙计们,我正在尝试读取一个json转储,但是不知道如何读取嵌套的json转储,比如lastTransactionID或NAV。

我还收到属性错误“AccountDetails”对象没有属性“get”。

r = accounts.AccountDetails(accountID)
client.request(r)
print r.response
print r.get('lastTransactionID')
print r.get('NAV')
print r.get('unrealizedPL')

 {
    u'account': 
        {
        u'trades': [], 
        u'marginCloseoutNAV': u'99999.9998',
        u'marginUsed': u'0.0000', 
        u'marginCloseoutPositionValue': u'0.0000', 
        u'currency': u'EUR', 
        u'resettablePL': u'-0.0002', 
        u'NAV': u'99999.9998', 
        u'marginCloseoutMarginUsed': u'0.0000', 
        u'openTradeCount': 0, 
        u'marginCallMarginUsed': u'0.0000', 
        u'orders': [], 
        u'openPositionCount': 0, 
        u'positionValue': u'0.0000', 
        u'pl': u'-0.0002', 
        u'financing': u'0.0000', 
        u'pendingOrderCount': 0, 
        u'positions': 
            [
                    {
                    u'financing': u'0.0000',
                    u'short': 
                        {
                        u'units': u'0', 
                        u'financing': u'0', 
                        u'resettablePL': u'0.0000', 
                        u'unrealizedPL': u'0.0000', 
                        u'pl': u'0.0000'
                        }, 

                    u'commission': u'0.0000', 
                    u'unrealizedPL': u'0.0000', 

                    u'long': 
                        {
                        u'units': u'0', 
                        u'financing': u'0.0000', 
                        u'resettablePL': u'-0.0002', 
                        u'unrealizedPL': u'0.0000', 
                        u'pl': u'-0.0002'
                        }, 

                    u'instrument': u'AUD_USD', 
                    u'resettablePL': u'-0.0002', 
                    u'pl': u'-0.0002'
                    }
            ], 

        u'unrealizedPL': u'0.0000', 
        u'alias': u'Primary', 
        u'createdByUserID': xxx, 
        u'marginCloseoutUnrealizedPL': u'0.0000', 
        u'createdTime': u'2017-05-25T18:26:03.961466233Z', 
        u'balance': u'99999.9998'
        }, 

        u'lastTransactionID': u'255'
    }

从json中转储嵌套元素的人是怎么知道的? 提前谢谢你的帮助


Tags: 对象jsonget属性错误plunitsprint
1条回答
网友
1楼 · 发布于 2024-06-26 13:46:04

您可以使用json模块来执行以下操作:

import json

a = json.load(string_or_file_with_json)
# Now in a you have a dict, that represents json object
# You can write a simple recursive function, that will do something on every entry or smt like that
def do(json_dict):
   for k, v in json_dict.items():
       # !UPDATE, use isinstance(v, dict) instead of v is dict
       # Thx mister in comments
       if isinstance(v, dict): # if v is dict, than it's a nested json object
           do(x)
       else: # else it specific value
           your_action(k, v)

相关问题 更多 >