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

函数内创建的hero_stats.json文件无法打开,请求技术排查

问题原因分析及解决方案

核心问题1:文件路径定位模糊

代码使用相对路径写入文件时,文件会被保存到Python脚本的当前工作目录(不一定是脚本所在的文件夹),这会导致你在预期位置找不到文件,误以为“无法打开”。

核心问题2:重复写入覆盖+缺少可视化所需的文件读取逻辑

你的代码存在两次写入同一文件的操作:

  • 先通过pd.DataFrame(data).to_json("hero_stats.json")写入pandas格式的JSON
  • 紧接着用json.dump(data, outfile)覆盖了之前的内容

同时,你的需求是“打开文件进行可视化”,但当前代码只完成了写入文件的操作,没有任何读取文件、触发可视化的逻辑,这也是你觉得流程缺失的原因。

修正后的代码示例

import pandas as pd, requests, json
import os

def get_hero_stats():
    # 获取英雄数据
    data = requests.get("https://api.opendota.com/api/heroStats").json()
    
    # 明确文件保存路径(固定到脚本所在文件夹)
    script_folder = os.path.dirname(os.path.abspath(__file__))
    target_file = os.path.join(script_folder, "hero_stats.json")
    
    # 仅保留一种写入方式(pandas格式更适合后续可视化)
    pd.DataFrame(data).to_json(target_file, indent=4)
    
    # 读取文件并做可视化准备(示例:打印数据预览)
    hero_df = pd.read_json(target_file)
    print("英雄数据预览:")
    print(hero_df[["localized_name", "primary_attr", "attack_type"]].head())
    
    # 直接打开文件所在目录(Windows系统适用)
    os.startfile(script_folder)

get_hero_stats()

关键调整说明

  • 用os.path模块固定文件路径,确保文件保存在脚本所在文件夹,方便你快速找到
  • 移除重复写入操作,避免不必要的文件覆盖
  • 添加了文件读取和可视化预览逻辑,同时自动打开文件所在目录,解决“找不到文件”的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:01:01