首页 > 解决方案 > 使用请求,如何迭代字典来获取数据

问题描述

要搜索的数据:

{
  "epicUserHandle": "HaaZeeY",
  "stats": {
    "p2": {
      "trnRating": {
        "label": "TRN Rating",
        "field": "TRNRating",
        "category": "Rating",
        "valueInt": 1193,
        "value": "1193",
        "rank": 3210238,
        "percentile": 56.0,
        "displayValue": "1,193"
      },
      "top1": {
        "label": "Wins",
        "field": "Top1",
        "category": "Tops",
        "valueInt": 46,
        "value": "46",
        "rank": 15163718,
        "percentile": 0.8,
        "displayValue": "46"
      },

我的代码:

url = "https://api.fortnitetracker.com/v1/profile/{}/{}".format(platform, 
username)
headers = {'TRN-Api-Key' : 'MY API KEY'}

r = requests.get(url, headers=headers)

#p2 = Solo
#p10 = Duo
#p9 = Squad

tempory_dict = {}

result = r.json()['stats']['p2']['top1']

for r in result:
    #WHAT DO I PUT HERE

tempory_dict['Wins'] = #VALUE

print(tempory_dict['Wins'])

我需要在这里做什么?我希望它找到"value"并将其保存在tempory_dict['Wins']. 我对请求不熟悉,不知道如何遍历所有内容以找到价值。

谢谢。

标签: python-3.xpython-requests

解决方案


您实际上几乎就在那里,拥有: result = r.json()['stats']['p2']['top1'],您实际上分配
{ "label": "Wins", "field": "Top1", "category": "Tops", "valueInt": 46, "value": "46", "rank": 15163718, "percentile": 0.8, "displayValue": "46" }result变量,所以您需要做的只是更进一步并分配: tempory_dict['Wins'] = result['value']


推荐阅读