如何将 gspread api 中的数据格式化为 Google 表格

How can I format data from gspread api into Google Sheets

我是 python(和一般编程)的新手。我目前正在致力于自动化我工作的数据输入方面。到目前为止,我已经弄清楚如何使用 pandas 从 csv 中整理出我想要的数据,并使用 gspread api 将其加载到 google 电子表格的适当区域。我的问题是 csv 数据转储到电子表格的单个单元格中。我怎样才能让它进入整排单元格?我已经尝试了 .appendrow() 函数的每个参数。

非常感谢 - 欧文 K

import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]

creds = ServiceAccountCredentials.from_json_keyfile_name("/Users/macbook/Documents/Atom Projects/Sheets1/creds.json", scope)

client = gspread.authorize(creds)

import pandas as pd

df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')

Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna].to_csv()

print(LU)
bick4 = client.open("Test Sheet") .worksheet('bick 4')
bick4.append_row([LU])

我相信你的目标如下。

  • 您想将 LU = df[Luna].to_csv() 的值放入 Google 电子表格中的每个单元格。
  • 您想使用带有 python 的 gspread 来实现此目的。
  • 您已经能够使用表格获取和放置值 API。

为此,这个答案怎么样?

修改点:

  • 在这种情况下,从 df[Luna] 创建一个列表,然后使用 gspread 将该列表放入电子表格。

我提出以下两种模式。

模式一:

在此模式中,使用 values_update 的方法将 df[Luna] 的值放入电子表格。

示例脚本:

client = gspread.authorize(creds)
spreadsheet = client.open('Test Sheet')
sheet_name = 'bick 4'

import pandas as pd
df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')
Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna]

values = [LU.columns.values.tolist()]
values.extend(LU.values.tolist())
spreadsheet.values_update(sheet_name, params={'valueInputOption': 'USER_ENTERED'}, body={'values': values})

模式二:

在此模式中,使用 values_update 的方法将 df[Luna] 的值放入电子表格。

示例脚本:

client = gspread.authorize(creds)
spreadsheet = client.open('Test Sheet')
sheet_name = 'bick 4'

import pandas as pd
df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')
Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna]

values = LU.values.tolist()
spreadsheet.values_append(sheet_name, params={'valueInputOption': 'USER_ENTERED'}, body={'values': values})

参考文献: