【发布时间】:2021-01-04 21:27:18
【问题描述】:
我的目标是从谷歌驱动器读取 .csv 文件并将其加载到数据帧。
我尝试了一些答案 here 但问题是,该文件不是公开的,需要身份验证。
我查看了护目镜驱动 API,但我被困在那里,我不知道如何前进。我确实设法打开了 google sheet 并将其加载到数据框中,但这是不同的,这是一个适用于 google sheet 的示例。
service = build('sheets', 'v4', credentials=creds)
sheet = service.spreadsheets()
sheets_file = sheet.values().get(
spreadsheetId=sheet_id,
range=sheet_range
).execute()
header = sheets_file.get('values', [])[0] # Assumes first line is header!
values = sheets_file.get('values', [])[1:] # Everything else is data.
if not values:
print('No data found.')
else:
all_data = []
for col_id, col_name in enumerate(header):
column_data = []
for row in values:
column_data.append(row[col_id])
ds = pd.Series(data=column_data, name=col_name)
all_data.append(ds)
df = pd.concat(all_data, axis=1)
print(df.head())
我也看到了一些 google colab 方法,但我不能使用它,因为我仅限于使用 python,关于如何解决这个问题的任何想法?
【问题讨论】:
-
如果需要验证才能获取文件,那么您可能必须使用
Selenium来打开网页、登录和下载。 -
我更喜欢使用 google API,因为如果我使用 selenium,我必须更改流程
-
我可以问你关于你的问题吗? 1.在你的脚本中,
sheet.values().get(###)可以用service = build('sheets', 'v4', credentials=creds)的service吗?我想问一下你是否已经完成了范围的授权。 2. 关于doing other format like csv/.xlsx,你想从谷歌电子表格转换成哪个? -
是的,我已经完成了身份验证,我没有包含样板代码。不,我不想将其转换为谷歌表格。我只想获取 csv 文件并将其转换为数据框
-
感谢您的回复。从您的回复中,我提出了 3 个示例脚本作为答案。你能确认一下吗?如果这些不是您期望的方向,我深表歉意。
标签: python pandas google-drive-api