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

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编码,按以下方法尝试:

  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')
    
  2. 若不确定编码,用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的列存储问题,执行以下步骤:

  1. 安装依赖库:
    !pip install openai pandas google-colab
    
  2. 挂载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')
    
  3. 设置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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:27:35