You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用足球API返回长字符串而非结构化数据,如何修复?

如何格式化足球API返回的无结构字符串并导出Excel?

我调用足球数据API获取赛事信息,运行代码后返回无法处理的长字符串,没有规整格式。尝试导出到Excel时所有数据都存入单个单元格,期望输出如下结构化键值对格式:

"id":2059,
"name":"Team",
"logo": "logo.png",
"winner": false

附使用的Python代码:

import requests

url = "https://api-football-v1.p.rapidapi.com/v3/fixtures"

querystring = {"date":"2023-03-09"}

headers = {
    "X-RapidAPI-Key": "[key goes here,hidden]",
    "X-RapidAPI-Host": "[host goes here,hidden]"
}

response = requests.request("GET", url, headers=headers, params=querystring)

print(response.text)

一、通过Python代码实现格式化与导出

1. 解析并格式化API返回数据

API返回的response.text是压缩的JSON字符串,直接打印会是无缩进的长文本。可以用response.json()解析为Python字典,再格式化输出:

import requests
import json

url = "https://api-football-v1.p.rapidapi.com/v3/fixtures"

querystring = {"date":"2023-03-09"}

headers = {
    "X-RapidAPI-Key": "[key goes here,hidden]",
    "X-RapidAPI-Host": "[host goes here,hidden]"
}

response = requests.request("GET", url, headers=headers, params=querystring)
# 解析为Python字典结构
data = response.json()

# 生成带缩进的结构化JSON字符串
formatted_json = json.dumps(data, indent=4)
print(formatted_json)

2. 导出结构化数据到Excel

使用pandas库可以将解析后的数据直接导出为Excel表格,每个字段自动对应一列:

import requests
import pandas as pd

url = "https://api-football-v1.p.rapidapi.com/v3/fixtures"

querystring = {"date":"2023-03-09"}

headers = {
    "X-RapidAPI-Key": "[key goes here,hidden]",
    "X-RapidAPI-Host": "[host goes here,hidden]"
}

response = requests.request("GET", url, headers=headers, params=querystring)
data = response.json()

# 提取API返回中的赛事核心数据(response字段)
fixtures = data.get("response", [])
# 转为DataFrame格式
df = pd.DataFrame(fixtures)
# 导出到Excel,自动拆分字段到不同单元格
df.to_excel("football_fixtures.xlsx", index=False)

如果需要提取指定字段(比如你期望的球队id、名称等),可以手动筛选数据:

processed_data = []
for fixture in fixtures:
    home_team = fixture["teams"]["home"]
    processed_data.append({
        "id": home_team["id"],
        "name": home_team["name"],
        "logo": home_team["logo"],
        "winner": home_team["winner"]
    })
# 导出筛选后的结构化数据
df = pd.DataFrame(processed_data)
df.to_excel("team_info.xlsx", index=False)

二、使用工具快速处理

如果不想编写代码,可以用以下方式解决:

  • 在线JSON格式化工具:将API返回的长字符串粘贴进去,一键生成带缩进的结构化JSON。
  • Excel内置功能:用Power Query解析JSON:
    1. 打开Excel,点击「数据」→「获取数据」→「从文件」→「从JSON」
    2. 将API返回的字符串保存为.json文件后导入,Power Query会自动解析所有字段并生成规范表格。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:22:35