【问题标题】:How to access google sheets without authentication?如何在没有身份验证的情况下访问谷歌表格?
【发布时间】:2020-11-09 04:54:57
【问题描述】:

我观看了以下视频,其中提供了有关无需身份验证即可访问 google 表格的演示:-

https://youtu.be/t6WSY9D_ORQ?list=LL

根据视频,我无法使用以下代码访问我在 pandas 中的谷歌表格:-

import pandas as pd
sheet_id = "my_sheet_id"
r = "https://docs.google.com/spreadsheets/d/{}/export?format=csv".format(sheet_id)
df = pd.read_csv(r)
df.head()

我得到的例外是:-

HTTP Error 400: Bad Request

相同的代码适用于以下公开的谷歌表格:- https://docs.google.com/spreadsheets/d/1x9p3nqTf9fBx8I4lb3WMC_K0BLaIU8Z-7kj7MVani3U/edit?usp=sharing 其中sheet_id = "1x9p3nqTf9fBx8I4lb3WMC_K0BLaIU8Z-7kj7MVani3U"

我是否需要添加一些标题/参数才能使其正常工作?

【问题讨论】:

  • 我认为您无法访问未经身份验证的非公开工作表。
  • 如果相同的代码适用于您提到的公共工作表,那么问题不一定是您要访问的工作表不是公共的或您用来访问的 URL这是错误的?当您将其粘贴到浏览器的地址栏中时,您的代码尝试访问的同一个 URL 是否会在未经身份验证的情况下显示该工作表?如果重点是您不必进行身份验证,那么我想不出您还需要在标头中添加什么,否则,URL 就是 URL 是什么。如果它可以在您的浏览器中运行,那么它也应该可以在您的代码中运行。

标签: python google-sheets


【解决方案1】:

如何修改端点如下?这个端点可以在 Drive API 中“Files:get”方法的exportLinks 看到。 Ref

发件人:

r = "https://docs.google.com/spreadsheets/d/{}/export?format=csv".format(sheet_id)

收件人:

r = "https://docs.google.com/spreadsheets/export?id={}&exportFormat=csv".format(sheet_id)

注意:

  • 当我测试您的示例电子表格时,可以检索数据。在这种情况下,电子表格需要公开共享。请注意这一点。

参考:

【讨论】:

    猜你喜欢
    • 2014-11-09
    • 1970-01-01
    • 2020-09-08
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2016-07-18
    相关资源
    最近更新 更多