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:
- 打开Excel,点击「数据」→「获取数据」→「从文件」→「从JSON」
- 将API返回的字符串保存为
.json文件后导入,Power Query会自动解析所有字段并生成规范表格。
内容的提问来源于stack exchange,提问作者Excel_Tom
相关产品推荐
相关产品推荐

