我正在创建一段在Google Docs中生成工作表文件的Python代码.该文件自行创建时没有任何问题,但我无法更改其编辑权限.

当我输入以下代码时,出现错误.你能给我一些建议吗?

from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from google.oauth2.service_account import Credentials

creds = Credentials.from_service_account_file("key/key1.json")

service = build("sheets", "v4", credentials=creds)

spreadsheet = {
  "properties": {
    "title": "Nowy arkusz"
  }
}
spreadsheet = service.spreadsheets().create(body=spreadsheet).execute()
spreadsheet_id = spreadsheet.get("spreadsheetId")

permission = {
    'type': 'anyone',
    'role': 'writer',
}
service.permissions().create(fileId=spreadsheet_id, body=permission).execute()

误差率

line 36, in <module>
    service.permissions().create(fileId=spreadsheet_id, body=permission).execute()
Attribute误差率: 'Resource' object has no attribute 'permissions'

推荐答案

在您的脚本中,我认为为了创建权限,需要使用build("drive", "v3", credentials=creds)而不是build("sheets", "v4", credentials=creds).

当您的脚本被修改时,下面的修改如何?

修改后的脚本:

from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from google.oauth2.service_account import Credentials

creds = Credentials.from_service_account_file(
    "key/key1.json",
    scopes=[
        "https://www.googleapis.com/auth/spreadsheets",
        "https://www.googleapis.com/auth/drive",
    ],
)

service = build("sheets", "v4", credentials=creds)
spreadsheet = {"properties": {"title": "Nowy arkusz"}}
spreadsheet = service.spreadsheets().create(body=spreadsheet).execute()
spreadsheet_id = spreadsheet.get("spreadsheetId")

drive = build("drive", "v3", credentials=creds)
permission = {
    "type": "anyone",
    "role": "writer",
}
drive.permissions().create(fileId=spreadsheet_id, body=permission).execute()

参考资料:

Python相关问答推荐

为什么我的Python代码在if-else声明中的行之前执行if-else声明中的行?

Pytest两个具有无限循环和await命令的Deliverc函数

图像 pyramid .难以创建所需的合成图像

在Wayland上使用setCellWidget时,try 编辑QTable Widget中的单元格时,PyQt 6崩溃

对所有子图应用相同的轴格式

在ubuntu上安装dlib时出错

如何保持服务器发送的事件连接活动?

Plotly Dash Creating Interactive Graph下拉列表

为什么我的sundaram筛这么低效

不允许 Select 北极滚动?

如何强制向量中的特定元素在Gekko中处于优化解决方案中

如何获取包含`try`外部堆栈的`__traceback__`属性的异常

如何为需要初始化的具体类实现依赖反转和接口分离?

无法在盐流道中获得柱子

如何关联来自两个Pandas DataFrame列的列表项?

对于数组中的所有元素,Pandas SELECT行都具有值

我可以同时更改多个图像吗?

try 在单个WITH_COLUMNS_SEQ操作中链接表达式时,使用Polars数据帧时出现ComputeError

Django REST框架+Django Channel->;[Errno 111]连接调用失败(';127.0.0.1';,6379)

as_index=False groupBy不支持count