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

读取pickle文件遇FileNotFoundError,已有conversation.json该如何解决?

解决FileNotFoundError:找不到'conversation'文件的问题

咱们一步步拆解问题,逐个解决:

核心问题梳理

你手里的文件是conversation.json,但代码里要么在找conversation.pickle,要么(从错误提示看)实际运行的代码在找conversation——这三个完全是不同的文件,系统当然找不到。另外,JSON和Pickle是两种完全不兼容的格式,不能直接用pickle.load()读取JSON文件,必须先做格式转换。

具体解决步骤

1. 先把JSON数据转成Pickle格式

先写一段小代码,读取你的JSON文件,把数据处理成vec_x和vec_y的结构,再保存为Pickle文件:

import json
import pickle

# 读取JSON文件(如果脚本和文件不在同一目录,要写绝对路径,比如'C:/Users/User/Desktop/thesemicolon-master/conversation.json')
with open('conversation.json', 'r', encoding='utf-8') as f:
    conversation_data = json.load(f)

# 这里要根据你JSON文件的实际结构处理数据!
# 举个例子:如果你的JSON是[{"input": "...", "output": "..."}, ...]的结构
vec_x = [item["input"] for item in conversation_data]
vec_y = [item["output"] for item in conversation_data]
# 注意:如果数据需要做向量转换(比如用gensim处理),要在这里完成,确保vec_x和vec_y是numpy能识别的格式

# 把处理好的数据保存成Pickle文件
with open('conversation.pickle', 'wb') as f:
    pickle.dump((vec_x, vec_y), f)

2. 修正原有代码的两个细节

生成conversation.pickle后,回到你的原有代码,要改两个地方:

  • 确保打开的文件名是'conversation.pickle'(和错误提示里的'conversation'区分开)
  • 读取Pickle文件要用二进制模式rb,你原来的代码用的是文本模式r,这也会出问题:
# 用绝对路径更稳妥,避免工作目录混乱
with open('C:/Users/User/Desktop/thesemicolon-master/conversation.pickle', 'rb') as f:
    vec_x, vec_y = pickle.load(f)

3. 快速确认文件位置的小技巧

如果不确定文件是不是在脚本的工作目录里,可以加一行代码打印当前路径:

import os
print(os.getcwd())  # 输出当前工作目录,看看你的JSON/Pickle文件是不是在这里

最后核对一遍

  1. 确认conversation.json存在,路径正确
  2. 运行转换代码生成conversation.pickle
  3. 原有代码用rb模式读取正确的Pickle文件

这样应该就能解决找不到文件的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:46:58