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

Python获取随机单词时报错'str' object has no attribute 'read',疑与random.choice相关

解决'str' object has no attribute 'read'报错问题

你的错误根本不在random.choice(Words)这一行,问题出在json.load()的用法上:

  • json.load()要求传入已打开的文件对象,而不是字符串格式的文件名。你直接传了"EnglishDictionary.json"这个字符串,Python会把它当成要读取的对象,尝试调用其read()方法,但字符串没有这个方法,所以抛出了报错。

修正后的代码如下:

import json
import random

# 使用with语句自动处理文件打开/关闭,避免资源泄漏
with open("EnglishDictionary.json", 'r') as f:
    Dictonaryftg = json.load(f)

Words = list(Dictonaryftg.keys())
Rword = random.choice(Words)  # 字典键本身就是字符串,无需额外转str

print(Rword)

额外说明:

  • with语句会自动在代码块结束后关闭文件,比手动调用close()更安全
  • 字典的键默认是字符串类型,所以random.choice(Words)返回的结果不需要用str()二次转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:05:03