You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Web API获取的数据?规整Dota2欧洲排行榜表格用于Excel导入

解决Dota2排行榜API数据格式混乱无法导入Excel的问题

我之前处理过这个Dota2排行榜API的问题!它返回的是压缩后的单行JSON数据,直接保存或复制的话确实没法直接导入Excel,给你几个实用的解决方案:

方案1:用Python格式化JSON(适合需要保留原始结构的场景)

如果只是想把压缩的JSON转成结构化的格式,方便后续处理,写个几行的Python脚本就行:

import json
import requests

# 请求欧洲区排行榜数据
api_url = "http://www.dota2.com/webapi/ILeaderboard/GetDivisionLeaderboard/v0001?division=europe"
response = requests.get(api_url)
leaderboard_data = response.json()

# 格式化并保存为带缩进的JSON文件
with open("dota_europe_leaderboard.json", "w", encoding="utf-8") as file:
    json.dump(leaderboard_data, file, indent=4, ensure_ascii=False)

运行后得到的JSON文件会有清晰的层级结构,你可以手动复制其中的leaderboard数组内容,或者用工具进一步转成表格格式。

方案2:直接转成CSV(最适合导入Excel)

如果目标是直接导入Excel,把数据转成CSV格式是最省心的。同样用Python脚本一键生成:

import json
import requests
import csv

api_url = "http://www.dota2.com/webapi/ILeaderboard/GetDivisionLeaderboard/v0001?division=europe"
response = requests.get(api_url)
data = response.json()

# 提取核心的排行榜数据数组
leaderboard_entries = data["leaderboard"]

# 获取表头字段(从第一个条目自动提取)
column_headers = leaderboard_entries[0].keys()

# 写入CSV文件
with open("dota_europe_leaderboard.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.DictWriter(file, fieldnames=column_headers)
    writer.writeheader()  # 写入表头
    writer.writerows(leaderboard_entries)  # 写入所有行数据

生成的CSV文件可以直接用Excel打开,所有字段(排名、MMR、玩家名称等)都会自动对应到表格列,完全不需要手动调整格式。

方案3:无代码在线工具处理(适合不想写代码的情况)

如果你不想写脚本,也可以用在线工具完成:

  • 打开浏览器开发者工具(F12),切换到「Network」标签,刷新目标页面,找到API请求(URL包含GetDivisionLeaderboard),复制它的响应内容;
  • 用在线JSON格式化工具把压缩的单行JSON转成结构化格式;
  • 再用JSON转CSV工具,选择leaderboard作为要转换的数组,生成CSV文件后即可导入Excel。

注意事项

API返回的数据里,真正的排行榜内容在leaderboard数组中,转换时要确保只处理这个数组,不要把外层的元数据(比如statusdivision)也混入表格里。

内容的提问来源于stack exchange,提问作者Solliden

火山引擎 最新活动