📜  在Python中使用 Google Sheets 作为数据库(1)

📅  最后修改于: 2023-12-03 15:23:25.890000             🧑  作者: Mango

在Python中使用 Google Sheets 作为数据库

Google Sheets是一款功能强大的在线电子表格应用程序,它可以用来处理数据、制作图表等。而在Python中,我们也可以使用Google Sheets作为数据库来存储数据。这样做有很多好处,例如:

  • 数据不需要存储在本地,可以随时随地访问。
  • 可以通过共享表格的方式让其他人访问、修改数据。
  • 支持实时同步,即使多人同时访问一个表格,也不用担心数据冲突的问题。

下面介绍如何在Python中使用Google Sheets作为数据库。

步骤一:创建Google Sheets

首先,我们需要创建一个Google Sheets表格来存储数据。可以按照以下步骤操作:

  1. 打开Google Sheets网站(https://sheets.google.com/)。
  2. 点击“新建电子表格”按钮,创建一个新的表格。
  3. 在第一行中输入列标题,例如“姓名”、“年龄”、“性别”等。
  4. 在每一行中输入数据,例如“张三”、“18”、“男”等。
步骤二:创建API密钥

接下来,我们需要创建一个API密钥来访问Google Sheets。可以按照以下步骤操作:

  1. 打开Google开发者控制台(https://console.developers.google.com/)。
  2. 新建一个项目,并打开Google Sheets API。
  3. 在“凭据”页面中创建一个API密钥。
  4. 将API密钥保存在一个安全的位置,后面需要用到。
步骤三:安装所需的Python库

使用Google Sheets作为数据库需要安装相应的Python库,包括google-auth、google-auth-oauthlib、google-auth-httplib2和google-api-python-client。可以运行以下命令进行安装:

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
步骤四:使用Python连接Google Sheets

在Python中,我们可以使用已安装的Python库连接Google Sheets。以下是连接Google Sheets的示例代码:

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

# 定义Google Sheets API的范围
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']

# 定义API密钥的路径
SERVICE_ACCOUNT_FILE = '/path/to/service.json'

# 身份验证
creds = None
creds = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)

# 创建Google Sheets API服务
service = build('sheets', 'v4', credentials=creds)

# 定义要访问的表格ID和工作表名称
spreadsheet_id = 'your_spreadsheet_id'
sheet_name = 'Sheet1'

# 获取工作表的数据
result = service.spreadsheets().values().get(
        spreadsheetId=spreadsheet_id, range=sheet_name).execute()
values = result.get('values', [])

在上面的示例中,我们使用Credentials.from_service_account_file()方法从API密钥文件中读取认证信息,然后调用build()方法创建了Google Sheets API服务。接下来,我们可以使用service.spreadsheets().values().get()方法来获取指定工作表的数据。

步骤五:操作Google Sheets数据

一旦连接成功,我们就可以像操作本地数据库一样对Google Sheets中的数据进行增删改查等操作。以下是一些常用的示例代码:

读取数据
result = service.spreadsheets().values().get(
        spreadsheetId=spreadsheet_id, range=sheet_name).execute()
values = result.get('values', [])

if not values:
    print('No data found.')
else:
    for row in values:
        print(row)
插入数据
values = [
    ["John", "Doe", "22"],
    ["Jane", "Doe", "25"]
]
range_name = 'Sheet1!A1:C'
body = {
    'values': values
}
result = service.spreadsheets().values().update(
        spreadsheetId=spreadsheet_id, range=range_name,
        valueInputOption='USER_ENTERED', body=body).execute()
print('{0} cells updated.'.format(result.get('updatedCells')))
更新数据
range_name = 'Sheet1!C2'
value_input_option = 'USER_ENTERED'
data = [
    [26],
]
value_range_body = {
    'values': data
}
request = service.spreadsheets().values().update(
    spreadsheetId=spreadsheet_id, range=range_name,
    valueInputOption=value_input_option, body=value_range_body)
response = request.execute()
print('{0} cells updated.'.format(response.get('updatedCells')))
删除数据
range_name = 'Sheet1!A2:C'
result = service.spreadsheets().values().clear(
        spreadsheetId=spreadsheet_id, range=range_name).execute()
print('{0} cells cleared.'.format(result.get('clearedCells')))

通过上述示例代码,我们可以对Google Sheets数据进行灵活地操作。

总结

本文简单介绍了如何在Python中使用Google Sheets作为数据库,并提供了相关的示例代码。这种方法适用于一些不太需要复杂数据查询和操作的应用场景。如果需要更高效、更强大的数据库功能,可以考虑使用其他数据库,例如MySQL、PostgreSQL等。