繁体   English   中英

如何修剪 JSON 数组以获取特定值

[英]How to trim JSON array to get specific value

所以我正在使用 Echo Arena API,它以 JSON 格式为我提供了以下一些内容。 我试图让所有在比赛的时候用户的姓名,因为在这里看到有球员的名字:rnedds进一步回落DarkCobra866。 我怎样才能只得到名字而没有其他信息? 使用 Python 3。

{
   "teams":[
      {
         "players":[
            {
               "name":"rnedds",
               "rhand":[
                  -3.3230002,
                  -1.2370001,
                  -18.701
               ],
               "playerid":0,
               "position":[
                  -2.7520001,
                  -0.96800005,
                  -18.622002
               ],
               "lhand":[
                  -2.414,
                  -1.5630001,
                  -18.487001
               ],
               "userid":1663152230440088,
               "stats":{ }
            },
            {
               "name":"DarkCobra866",
               "rhand":[
                  -5.3710003,
                  -1.978,
                  -7.5110002
               ],
               "playerid":4,
               "position":[
                  -5.5280004,
                  -1.3520001,
                  -7.4040003
               ],
               "lhand":[
                  -5.6520004,
                  -1.7540001,
                  -7.4020004
               ],
               "userid":2649496045086049,
               "stats":{ }
            }
         ]
      }
   ]
}

目前,对于 API 中的其他信息,我的代码如下所示

 matchdetails = {
    'echosessionid' : data['sessionid'],
    'echoclientname' : data['client_name'],
    'echogameclockdisplay' : data['game_clock_display'],
    'echogamestatus' : data['game_status']
    }
    currentMatchDetails = json.dumps(matchdetails)

将您的 JSON 字符串加载到字典中,如下所示:

import json

json_text = '''
{
   "teams":[
      {
         "players":[
            {
               "name":"rnedds",
               "rhand":[
                  -3.3230002,
                  -1.2370001,
                  -18.701
               ],
               "playerid":0,
               "position":[
                  -2.7520001,
                  -0.96800005,
                  -18.622002
               ],
               "lhand":[
                  -2.414,
                  -1.5630001,
                  -18.487001
               ],
               "userid":1663152230440088,
               "stats":{ }
            },
            {
               "name":"DarkCobra866",
               "rhand":[
                  -5.3710003,
                  -1.978,
                  -7.5110002
               ],
               "playerid":4,
               "position":[
                  -5.5280004,
                  -1.3520001,
                  -7.4040003
               ],
               "lhand":[
                  -5.6520004,
                  -1.7540001,
                  -7.4020004
               ],
               "userid":2649496045086049,
               "stats":{ }
            }
         ]
      }
   ]
}
'''

data = json.loads(json_text)

players = [player['name'] for team in data['teams'] for player in team['players']]

print(players)

上面的代码将导致:

['rnedds', 'DarkCobra866']

暂无
暂无

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

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