从r.text获取信息

时间:2019-06-30 00:44:29

标签: json python-3.x python-requests

我正在编写一个小程序,用于比较名为osu的游戏中的排名。 我是一个初学者,现在有点想从这里离开,我知道/认为我将json数据转换为python中的dict,然后提取所需的特定信息并进行比较用户排名?

抱歉,我现在只有大约3-4周的时间在编码,我想继续着手为我开始第一个小小的大项目。

这是我正在使用的游戏/ api的git https://github.com/ppy/osu-api/wiki

我当前的代码:

import requests
import json


print('Please Enter Usernames to Compare')

payload = {'k': 'myapikey', 'u': input()}
r = requests.get('https://osu.ppy.sh/api/get_user', params=payload)

print(r.text)

data = json.loads(r.text)

这是我输入用户名时的信息内容 我想从中获取信息:

[
  {
    "user_id": "14376563",
    "username": "kaidwards",
    "join_date": "2019-05-01 01:48:05",
    "count300": "92149",
    "count100": "21750",
    "count50": "3790",
    "playcount": "818",
    "ranked_score": "72307846",
    "total_score": "209966595",
    "pp_rank": "627326",
    "level": "31.8303",
    "pp_raw": "308.758",
    "accuracy": "89.91222381591797",
    "count_rank_ss": "0",
    "count_rank_ssh": "0",
    "count_rank_s": "6",
    "count_rank_sh": "0",
    "count_rank_a": "15",
    "country": "US",
    "total_seconds_played": "58234",
    "pp_country_rank": "97990",
    "events": [
      {
        "display_html": "<img src='/images/S_small.png'/> <b><a href='/u/14376563'>kaidwards</a></b> achieved rank #583 on <a href='/b/1948011?m=0'>Minase Inori, Hanazawa Kana, Iguchi Yuka, Hayami Saori - One Step [Hard]</a> (osu!)",
        "beatmap_id": "1948011",
        "beatmapset_id": "932314",
        "date": "2019-06-29 07:52:16",
        "epicfactor": "1"
      },
      {
        "display_html": "<img src='/images/B_small.png'/> <b><a href='/u/14376563'>kaidwards</a></b> achieved rank #442 on <a href='/b/1985907?m=0'>Kuba Oms - Sex Is Good [Cherry Blossom's Hard]</a> (osu!)",
        "beatmap_id": "1985907",
        "beatmapset_id": "935772",
        "date": "2019-06-29 07:40:31",
        "epicfactor": "1"
      },
      {
        "display_html": "<b><a href='/u/14376563'>kaidwards</a></b> unlocked the \"<b>Challenge Accepted</b>\" medal!",
        "beatmap_id": "0",
        "beatmapset_id": "0",
        "date": "2019-06-29 07:08:11",
        "epicfactor": "4"
      }
    ]
  }
]

我需要从r.text中获取信息。

我需要抓的具体东西是pp_rank":"627326

1 个答案:

答案 0 :(得分:1)

数据是dictionary数据类型。可以通过data['pp_rank']data['level']访问其每个键的值(例如'pp_rank'或'level')。例如:

>>> data['pp_rank']
627326

有关Python-3.x中dictionary数据类型的更多参考,请参见Python's data structures documentation