# 尝试版本: Credentials.from_authorized_user_file

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

# If modifying these scopes, delete the file token.json.
SCOPES = ["https://www.googleapis.com/auth/spreadsheets.readonly"]
KEY_FILE_LOCATION = './Auto/gaforpython.json'

credentials = Credentials.from_authorized_user_file(KEY_FILE_LOCATION, SHEET_SCOPES)
service = build('sheets', 'v4', credentials=credentials)
# ValueError: Authorized user info was not in the expected format, missing fields refresh_token, client_secret
# ---------------------------------------------------------------------------------------------

from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

SHEET_SCOPES = ['https://www.googleapis.com/auth/spreadsheets']  # .readonly,只读权限, 无.readonly读写操作的权限
KEY_FILE_LOCATION = 'xxx.json'

credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SHEET_SCOPES)
service = build('sheets', 'v4', credentials=credentials)

import pandas as pd
from datetime import datetime

# 创建一个简单的 DataFrame 测试数据
data = {'Name': ['MIN', 'Bob', 'Charlie'],
        'Age': [99, 30, 35],
        'City': ['Shenzhen', 'London', 'Paris']}
df = pd.DataFrame(data)
df["time"] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

list_df = df.values.tolist()
# SheetDef.new_row(service, '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY', '0', len(list_df))
range_ = '工作表1!A1:D' + str(len(list_df)+ 0)  # '工作表1!A1:D{num}'
# range_ = '工作表1!A1:D1'  # 建议写成默认最好

# range_ = '工作表1!A1:A1'  # 锚定点位
# range_ = '工作表4!H1:H1'  # 锚定点位
print(range_)

SheetDef.insert_value(service, '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY',range_, list_df)

工作表1!A1:D3
{'spreadsheetId': '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY',
 'tableRange': "'工作表1'!A1:D19",
 'updates': {'spreadsheetId': '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY',
  'updatedRange': "'工作表1'!A20:D22",
  'updatedRows': 3,
  'updatedColumns': 4,
  'updatedCells': 12}}



# 只读: .readonly  即可
SheetDef.get_sheet_value(service, '1ZkXZYlA2yrMXTTa9DlWsgOB3sF2tVQGlmzExsokXDFY', '工作表1!A1:D3')

[['Name', 'Age', 'City', 'update_time'],
 ['MIN', '99', 'Shenzhen', '2024-07-13 00:54:15'],
 ['Bob', '30', 'London', '2024-07-13 00:54:15']]

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐