【问题标题】:How to upload a worksheet using pygsheets如何使用 pygsheets 上传工作表
【发布时间】:2017-02-20 18:49:56
【问题描述】:

我正在使用 http://pygsheets.readthedocs.io/en/latest/index.html 一个 google sheet api v4 的包装器。

我有一个小脚本,我试图在其中选择一个 json 工作表以上传到 google 工作表工作表。文件名由以下部分组成:

spreadsheetname_year_month_xxx.json

代码:

import tkinter as tk
import tkFileDialog
import pygsheets


root = tk.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()
print file_path
file_name = file_path.split('/')[-1]
print file_name
file_name_segments = file_name.split('_')
spreadsheet = file_name_segments[0]
worksheet = file_name_segments[1]+'_'+file_name_segments[2]

gc = pygsheets.authorize(outh_file='client_secret_xxxxxx.apps.googleusercontent.com.json')

ssheet = gc.open(spreadsheet)
ws = ssheet.add_worksheet(worksheet(ssheet,str(raw_input(file_path))))

文件路径导致生成的 json 文件如下所示:

{
  "count": 12, 
  "results": [
    {
      "case": "abc1", 
      "case_name": "invalid", 
      "case_type": "invalid", 

    }, 
    {
      "case": "abc2", 
      "case_name": "invalid", 
      "case_type": "invalid", 
      },
............

我得到了:

File "upload_to_google_sheets.py", line 27, in <module>
ws = ssheet.add_worksheet(worksheet(ssheet,str(raw_input(file_path))))
TypeError: 'unicode' object is not callable

如您所见,我正在尝试使用 json 数据实例化工作表。我做错了什么?

【问题讨论】:

标签: python json google-sheets-api pygsheets


【解决方案1】:

JsonSheet 参数不是用于工作表的值,而是用于指定工作表的属性,因此应该是this 格式。

由于直接将 json 转换为电子表格比较模糊,您需要先将其转换为 numpy 数组(矩阵)或 pandas DataFrame。然后您可以使用set_as_dfupdate_values 来更新电子表格。

【讨论】:

  • 感谢您的快速答复。我已按照您的要求创建了 pygsheets 标签。我真的很感谢你在这里的工作。我将研究 numpy 数组和 pandas dfs。如果我可以追问:我有很多 CSV 文件要上传,您推荐的使用库的方法是什么?
  • 通过 numpy 数组我的意思只是一个列表列表。关于 csv,您可以只使用 csv 模块并将 csv 读取为矩阵(列表列表),然后使用 update_cells。或者您可以使用 pandas read_csv 来读取 csv 和 set_as_df。我建议使用 csv 模块,因为它可能会更快一些,并且可能会删除对 pandas 的支持,因为它会大大增加导入时间。
  • 谢谢。我一定是错过了,但是 pygsheets 中的 csv 模块在哪里?
  • pygsheets 只是采用通用矩阵,您可以使用 csv 模块将 csv 读取为该格式。 stackoverflow.com/questions/24662571/python-import-csv-to-list
  • 如果你有时间,我有一个跟进stackoverflow.com/questions/42381184/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-27
相关资源
最近更新 更多