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

使用Python读取Bitbucket上的CSV文件转df,现有代码返回错误数据如何解决

解决方案:Python直接读取Bitbucket私有仓库CSV为DataFrame

问题根因

你当前直接向pd.read_csv()传入Bitbucket URL的方式未携带身份认证信息,私有仓库会返回身份验证页面而非CSV源数据,因此读取结果为异常内容。

正确实现代码

全程仅在内存中处理数据,不会生成本地文件:

import pandas as pd
import requests
from io import StringIO
import os

# 配置信息
csv_url = 'https://bitbucket.EXAMPLE.com/EXAMPLE/EXAMPLE/EXAMPLE/EXAMPLE/raw/wpcProjects.csv?at=refs%2Fheads%2Fmaster'
colnames = ['project_id','project_name','gourmet_url']
# 建议从环境变量读取账号信息,不要硬编码到代码中
bitbucket_username = os.getenv('BITBUCKET_USERNAME')
# 优先使用Bitbucket应用密码(仅开通仓库只读权限即可,更安全),不要用账号登录密码
bitbucket_app_password = os.getenv('BITBUCKET_APP_PASSWORD')

# 发起带认证的请求拉取CSV内容
response = requests.get(
    csv_url,
    auth=(bitbucket_username, bitbucket_app_password)
)
# 校验请求是否成功
response.raise_for_status()

# 直接从内存读取内容为DataFrame,不生成本地文件
# 如果CSV自带表头,请删除names参数,避免把原表头识别为数据行
df7 = pd.read_csv(StringIO(response.text), names=colnames)

常见调整项

  • 如果你的CSV文件本身自带表头,去掉pd.read_csv()中的names参数即可,避免覆盖原有表头
  • 如果是公开仓库无需认证,直接去掉requests.get()中的auth参数即可
  • 若CSV编码特殊,可在pd.read_csv()中新增encoding参数指定编码格式(如encoding='utf-8'、encoding='gbk')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:54:02