我正在努力编写代码,发现我是谷歌表的第一个空行.
我正在使用github.com/burnash/gspread的gspread包
如果有人可以帮助我会很高兴:)
我目前刚刚导入了模块并打开了工作表
scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('ddddd-61d0b758772b.json', scope)
gc = gspread.authorize(credentials)
sheet = gc.open("Event Discovery")
ws = sheet.worksheet('Event Discovery')
Run Code Online (Sandbox Code Playgroud)
我想找到行1158,它是带有函数的工作表的第一个空行,这意味着每次填充旧的空行时,它将找到下一个空行. 请参阅此处
使用developers.google.com我们创建了api用户并将下载的凭据作为json文件.现在,在我的macbook上gspread身份验证在使用credentials.json时工作正常.当在aws上将相同的配置移动到linux服务器时,它给出403不足的权限错误.
Pip和python版本是一样的.
例外
gspread.v4.exceptions.APIError: {
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}
Run Code Online (Sandbox Code Playgroud)
基本代码
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(creds)
sheet = client.open('MySheetName').sheet1
Run Code Online (Sandbox Code Playgroud) 我想使用该gspread库从谷歌电子表格中删除记录.
另外,如何在google电子表格中获取行数/记录数?gspread提供.row_count(),返回总行数,包括空白行,但我只想计算有数据的行.
CryptoUnavailableError:没有可用的加密库,并且从oauth2client导入加密失败。
我在链接中提到了上述错误。我能够通过重新安装pyOpenSSL和加密来解决此问题。但是现在出现了以下错误。
ImportError: No module named cryptography.hazmat.bindings._openssl
Run Code Online (Sandbox Code Playgroud)
_openssl是Unix可执行文件(_openssl.so)。以下是导入声明
from cryptography.hazmat.bindings._openssl import ffi, lib
Run Code Online (Sandbox Code Playgroud)
上面的代码在加密模块中的bindings.py中。这些都使用oauth2client链接到gspread身份验证。请帮帮我。我为此苦苦挣扎。
更新:该问题是由某些依赖项失败引起的。我无法找到依赖项失败的地方。从顶部重新安装所有库。这样解决了这个问题。
authentication google-app-engine oauth-2.0 python-2.7 gspread
我有一个包含数百个工作簿的google驱动器文件夹.我想遍历列表并更新数据.出于某种原因,gspread只能打开某些工作簿而不能打开其他工作簿.我最近才遇到这个问题.
这不是访问问题,因为所有内容都在同一个文件夹中.
我得到的raise SpreadsheetNotFound时候open_by_key(key).但是当我拿到密钥并将其粘贴到URL中时,工作表会打开.这意味着它不是关键.
这里发生了什么?我很惊讶其他人没有遇到这个错误.
我是否限制了我可以拥有的Google表格数量?我有大约2千.
更新:我发现如果我进入工作簿并四处寻找,那么表单就会被识别出来了!! !! 这是什么意思?如果工作表最近没有活动,它无法识别工作表???
此外,如果我尝试使用Google App Script SpreadsheetApp.openById,则会识别密钥!因此,工作表在那里,我无法打开它gspread.我已经使用Google脚本在识别之前首先在工作表上写入内容gspread.
我可以打开使用的纸张,pygsheets但因为它是新的,所以马车,我不能使用它.这看起来像个APIv4问题?有些床单不能用APIv3?
更新:这是另一个观察.使用APIv4打开工作簿后,您无法再使用V3打开它.
好的我正在跟随"成为技术营销人员"课程,我正在尝试学习如何使用GSpread管理Google Spreadsheets.我已经按照http://gspread.readthedocs.io/en/latest/oauth2.html上的文档进行了操作.我按照上面第二个URL中的步骤操作了一个包含以下代码的文档:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('DFS Google Sheets Data Imports-7205de852ff7.json', scope)
gc = gspread.authorize(credentials)
wks = gc.open("Authority Scraper").sheet1
wks.update_cell(1,2,"Hello World!")
Run Code Online (Sandbox Code Playgroud)
从那里我得到了终端中的错误:来自oauth2client.service_account import ServiceAccountCredentials ImportError:没有名为oauth2client.service_account的模块
有人请帮帮我.其他没有名为oath2client.service_account的模块的答案对我不起作用.谢谢!
python google-api-python-client gspread google-app-engine-python
是否可以使用gspreadGoogle Spreadsheets或其他基于Python的访问权限将图像插入电子表格?
此外,是否可以制作丰富的文本单元格(例如,粗体,斜体,不同的字体大小,颜色等)?
我想确定一种方法,以便在Google电子表格工作簿中的每个工作表的URL中获取工作表ID.例如,对于"Sheet2的"工作表ID 此工作簿是"1244369280",因为它的网址是https://docs.google.com/spreadsheets/d/1yd8qTYjRns4_OT8PbsZzH0zajvzguKS79dq6j--hnTs/edit#gid=1244369280
我发现的一种方法是提取Google电子表格的XML,因为根据这个问题,获取工作表ID的唯一方法是流式传输工作表的XML,但示例是在Javascript中,我需要在Python中执行此操作
这是我想在Python中执行的Javascript代码:
Dim worksheetFeed As WorksheetFeed
Dim query As WorksheetQuery
Dim worksheet As WorksheetEntry
Dim output As New MemoryStream
Dim xml As String
Dim gid As String = String.Empty
Try
_service = New Spreadsheets.SpreadsheetsService("ServiceName")
_service.setUserCredentials(UserId, Password)
query = New WorksheetQuery(feedUrl)
worksheetFeed = _service.Query(query)
worksheet = worksheetFeed.Entries(0)
' Save worksheet feed to memory stream so we can
' get the xml returned from the feed url and look for
' the gid. Gid allows us …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 python(ver 3) 脚本来使用 gspread 访问谷歌文档。
1) import gspread
2) from oauth2client.service_account import ServiceAccountCredentials
3) scope = ['https://spreadsheets.google.com/feeds']
4) credentials = ServiceAccountCredentials.from_json_keyfile_name(r'/path/to/jason/file/xxxxxx.json',scope)
5) gc = gspread.authorize(credentials)
6) wks = gc.open("test").sheet1
Run Code Online (Sandbox Code Playgroud)
测试是一个谷歌表,它似乎被打开并且阅读正常,但是如果我尝试从 Office excel 文件中读取它会给我错误。这是它们的外观:
test 和 mtg 所在的文件夹与我在 json 文件中收到的电子邮件共享。这两个文件也与该电子邮件共享。
尝试:
wks = gc.open("mtg.xls").sheet1
Run Code Online (Sandbox Code Playgroud)
和
wks = gc.open("mtg.xls").<NameOfFirstSheet>
Run Code Online (Sandbox Code Playgroud)
和
wks = gc.open("mtg").<NameOfFirstSheet>
Run Code Online (Sandbox Code Playgroud)
错误:
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/gspread/client.py”,第 152 行,在 open raise SpreadsheetNotFound gspread.exceptions.SpreadsheetNotFound
案例:我的脚本返回一个数据框,需要将其作为新的数据行附加到现有的谷歌电子表格.截至目前,我通过gspread将数据框作为多个单行添加.
我的代码:
import gspread
import pandas as pd
df = pd.DataFrame()
# After some processing a non-empty data frame has been created.
output_conn = gc.open("SheetName").worksheet("xyz")
# Here 'SheetName' is google spreadsheet and 'xyz' is sheet in the workbook
for i, row in df.iterrows():
output_conn.append_row(row)
Run Code Online (Sandbox Code Playgroud)
有没有办法追加整个数据框而不是多个单行?