我目前正在制作一个将显示OSU的不和谐机器人!统计数据。这是我的代码:
@bot.command()
async def osu(osu_name : str):
"""Adds two numbers together."""
await bot.say("Fetching data")
url = 'https://osu.ppy.sh/api/get_user?k={ my api key }&u=' + osu_name
# Do the HTTP get request
response = requests.get(url, verify=True) #Verify is check SSL certificate
# Decode the JSON response into a dictionary and use the data
await bot.say(response.json())
OSU!API在其json中给出了这一点:
[{
"user_id" : "1",
"username" : "User name",
"count300" : "1337", // Total amount for all ranked and approved beatmaps played
"count100" : "123", // Total amount for all ranked and approved beatmaps played
"count50" : "69", // Total amount for all ranked and approved beatmaps played
"playcount" : "42", // Only counts ranked and approved beatmaps
"ranked_score" : "666666", // Counts the best individual score on each ranked and approved beatmaps
"total_score" : "999999998", // Counts every score on ranked and approved beatmaps
"pp_rank" : "2442",
"level" : "50.5050",
"pp_raw" : "3113",
"accuracy" : "98.1234",
"count_rank_ss": "54",
"count_rank_s" : "81", // Counts for SS/S/A ranks on maps
"count_rank_a" : "862",
"country" : "DE", // Uses the ISO3166-1 alpha-2 country code naming. See this for more information: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2/wiki/ISO_3166-1_alpha-2)
"pp_country_rank":"1337", // The user's rank in the country.
"events" : [{ // Contains events for this user
"display_html" : "...",
"beatmap_id" : "222342",
"beatmapset_id" : "54851",
"date" : "2013-07-07 22:34:04",
"epicfactor" : "1" // How "epic" this event is (between 1 and 32)
}, { ... }, ...]
}]
我的代码显示不一致时是这样
我只想展示json中的一小部分内容,例如"pp_raw"、"Level"、"Accuracy"等。
您可以使用推荐答案的内置json
模块将JSON响应转换为一个Python字典--只需import json
,然后执行类似的操作来访问响应的各个元素:data = json.loads(response.json())[0]
。然后,您可以访问像data['pp_raw']
这样的单个元素,并按您认为合适的方式显示它们。
这篇关于使用discord.py显示来自json的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!
[英文标题]Display data from json with discord.py
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。