使用Google Colab如何读取Google表格

5
我们可以使用以下命令列出存储在Google Drive中的电子表格。
 from google.colab import drive
 drive.mount('/content/drive')
 !ls -l /content/drive/'Shared drives'

但是使用以下命令无法读取电子表格

import gspread
from oauth2client.client import GoogleCredentials

gc = gspread.authorize(GoogleCredentials.get_application_default())

gc.open('/content/drive/'Shared drives/data.gsheet').data available

我们还有一个问题,即在工作表名称(可用数据)中存在空格,并且我们无法更改工作表名称。

我参考链接:https://colab.research.google.com/notebooks/io.ipynb
请帮忙解决这个问题。


提供 [mcve]。具体来说,描述问题。"它不起作用"并不足以帮助人们理解您的问题。相反,告诉其他读者预期行为应该是什么。告诉其他读者错误消息的确切措辞以及产生错误消息的代码行。使用简短但描述性的问题摘要作为您问题的标题。 - TheMaster
3个回答

8
您可以使用gc.open_by_url('gsheets_url')打开文档(无需挂载驱动器)。对于工作表名称,您可以使用gsheets.worksheet('sheet name')。因此,在您的情况下,它应该是这样的:
from google.colab import auth
auth.authenticate_user()
import gspread
from oauth2client.client import GoogleCredentials

# setup
gc = gspread.authorize(GoogleCredentials.get_application_default())

# read data and put it in a dataframe
gsheets = gc.open_by_url('your-link')
sheets = gsheets.worksheet('data available').get_all_values()
df = pd.DataFrame(sheets[1:], columns=sheets[0])

(感谢这篇文章


8

根据Murilo Cunha的回答更新,因为它对身份验证会产生错误。

from google.colab import auth
auth.authenticate_user()

import gspread
from google.auth import default
creds, _ = default()

gc = gspread.authorize(creds)

import pandas as pd
# read data and put it in a dataframe
gsheets = gc.open_by_url('Your link')
sheets = gsheets.worksheet('data available').get_all_values()
df = pd.DataFrame(sheets[1:], columns=sheets[0])

0

如果您在运行此脚本时能够说明确切的错误信息,那将非常有帮助。但是,我注意到以下脚本中存在冗余引号:

gc.open('/content/drive/'Shared drives/data.gsheet')

请使用以下内容替换上述额外引号:

gc.open('/content/drive/Shared drives/data.gsheet')

另一个选择是尝试使用 gc.open_by_url() 而不是 gc.open()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接