Google Drive CSV读取报错及OpenAI批量问答实现求助
问题解决方案
一、解决Google Drive认证错误
你用的pydrive库需要client_secrets.json文件完成OAuth认证,报错是因为找不到该文件,按以下步骤处理:
- 登录Google Cloud Console,创建新项目,搜索并启用Google Drive API
- 进入「API和服务」→「凭据」,创建「OAuth客户端ID」,应用类型选「桌面应用」
- 下载生成的JSON文件,重命名为
client_secrets.json,放到代码运行的根目录(比如Colab里直接上传到/content路径下) - 若使用Colab,更推荐直接挂载Drive,无需
pydrive,代码更简洁:
挂载后可直接通过from google.colab import drive drive.mount('/content/drive')/content/drive/My Drive/访问文件,无需额外认证文件。
二、解决CSV编码错误
报错是因为CSV文件并非UTF-8编码,0xca字节常见于GBK/GB2312或Latin-1编码,按以下方法尝试:
- 用Pandas读取时指定编码:
import pandas as pd # 优先尝试GBK编码 csvdata = pd.read_csv('/content/drive/My Drive/SBISC.csv', encoding='gbk') # 若GBK无效,尝试Latin-1 # csvdata = pd.read_csv('/content/drive/My Drive/SBISC.csv', encoding='latin-1') - 若不确定编码,用
chardet库检测:import chardet with open('/content/drive/My Drive/SBISC.csv', 'rb') as f: result = chardet.detect(f.read()) print(result['encoding']) # 输出检测到的编码,再用该编码读取文件
三、完整批量调用OpenAI实现代码
假设CSV中有名为question的列存储问题,执行以下步骤:
- 安装依赖库:
!pip install openai pandas google-colab - 挂载Drive并读取CSV:
from google.colab import drive import pandas as pd import openai import time # 挂载Drive drive.mount('/content/drive') # 读取CSV(替换为你检测到的编码) csv_data = pd.read_csv('/content/drive/My Drive/SBISC.csv', encoding='gbk') - 设置OpenAI API密钥并批量生成回答:
# 设置你的OpenAI API密钥 openai.api_key = "你的API密钥" # 定义批量处理函数,添加延迟避免频率限制 def get_openai_answer(question): try: time.sleep(1) response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "user", "content": question} ] ) return response.choices[0].message['content'].strip() except Exception as e: return f"生成失败: {str(e)}" # 批量生成回答并添加到CSV csv_data['answer'] = csv_data['question'].apply(get_openai_answer) # 保存结果到Drive(utf-8-sig确保中文在Excel中正常显示) csv_data.to_csv('/content/drive/My Drive/SBISC_with_answers.csv', index=False, encoding='utf-8-sig')
内容的提问来源于stack exchange,提问作者Mustafa Al-Qayssei
相关产品推荐
相关产品推荐

