如何将Python脚本输出数据导出至Excel?求代码实现方案
实现Python脚本输出导出至Excel的几种方案
方案一:使用内置csv模块(推荐,自动处理特殊字符)
这个方法更规范,能避免字段里包含逗号时的格式混乱,Excel可直接打开生成的.csv文件。
修改后的完整代码:
import json import csv # 读取JSON数据 with open("example.json", encoding="UTF-8") as f: jsondata = json.load(f) # 准备表头和数据列表 header = ["联赛名称", "日期", "球队名称", "比分"] data_rows = [header] # 遍历收集数据 for league in jsondata["results"][0]["Elems"]: for matches in league["Elems"]: if "Friendly" in matches["ligName"]: continue # 整理当前行数据,确保所有字段为字符串类型 row = [ matches["ligName"], matches["date"], matches["teamnames"], str(matches["score"][0]) ] data_rows.append(row) # 写入CSV文件 with open("matches_result.csv", "w", encoding="utf-8-sig", newline="") as csvfile: writer = csv.writer(csvfile) writer.writerows(data_rows)
方案二:直接用","join生成CSV文本(符合备注要求)
如果要严格使用","join方法拼接每行内容,可以直接生成CSV格式的字符串后写入文件:
修改后的完整代码:
import json # 读取JSON数据 with open("example.json", encoding="UTF-8") as f: jsondata = json.load(f) # 准备表头,用join拼接 header = ",".join(["联赛名称", "日期", "球队名称", "比分"]) content_lines = [header] # 遍历收集数据并拼接每行 for league in jsondata["results"][0]["Elems"]: for matches in league["Elems"]: if "Friendly" in matches["ligName"]: continue # 整理字段并转成字符串,用join拼接成一行 row_items = [ matches["ligName"], matches["date"], matches["teamnames"], str(matches["score"][0]) ] content_lines.append(",".join(row_items)) # 写入文件(utf-8-sig确保Excel打开时中文不乱码) with open("matches_result.csv", "w", encoding="utf-8-sig") as f: f.write("\n".join(content_lines))
补充说明
- 生成的
.csv文件可以直接用Excel打开,无需额外格式转换 - 使用
utf-8-sig编码是为了避免Excel读取中文时出现乱码问题 - 如果字段内容本身包含逗号,方案一的
csv模块会自动处理(添加引号包裹),方案二需要手动转义(比如给字段套上双引号,或替换内部逗号)
内容的提问来源于stack exchange,提问作者kolasinac
相关产品推荐
相关产品推荐

