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

Python新手遇TypeError: dump()缺'fp'参数,求DOTA2英雄名提取帮助

解决DOTA2英雄名提取的问题

问题根源

  1. URL错误:你请求的是GitHub的Blob页面(HTML格式),不是原始JSON文件,无法直接解析成JSON数据。
  2. json.dump()用法错误:这个方法是用来将数据写入文件对象的,必须传入数据和文件指针(fp)两个参数;如果要把数据转为字符串,应该用json.dumps()。

修正后的代码

import json
import requests

# 使用原始JSON文件的地址,而非GitHub页面链接
url = 'https://raw.githubusercontent.com/kronusme/dota2-api/master/data/heroes.json'
response = requests.get(url)
# 将响应解析为Python字典/列表
heroes_data = response.json()

# 提取所有英雄的本地化名称
hero_names = [hero['localized_name'] for hero in heroes_data]

# 转为JSON字符串
hero_names_str = json.dumps(hero_names, ensure_ascii=False)
print(hero_names_str)

# 保存为文本文件(每行一个英雄名)
with open('dota2_heroes.txt', 'w', encoding='utf-8') as f:
    f.write('\n'.join(hero_names))

代码说明

  • 替换URL为GitHub原始文件地址,确保请求到的是纯JSON数据
  • 用response.json()直接解析响应内容为Python对象,无需手动处理字符串
  • 用列表推导式提取英雄名,简洁高效
  • json.dumps()将英雄名列表转为JSON字符串;如果要保存到文件,直接写入文本更直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:56:30