【问题标题】:Writing a Json file, cell by cell into a google spreadsheet将 Json 文件逐个单元格写入谷歌电子表格
【发布时间】:2020-04-08 09:43:47
【问题描述】:

我正在自动化一个流程,其中我需要将一些数据上传到 Google 电子表格。 数据最初位于 pandas 数据帧中,该数据帧被转换为 JSON 文件以供上传。

我正在上传,但我将所有数据放入每个单元格,因此单元格 A1 包含来自整个 Pandas 数据框的所有数据,实际上电子表格中的每个单元格都包含所有数据:/

当然,我希望将单元格 A1 放在数据框中,如 Google 电子表格中的 A1 等等,直到单元格 J173。

我想我需要放入某种循环来实现这一点,但我不确定 JSON 文件是如何工作的,所以我没有成功创建这个循环。

希望你们能帮忙

下面是代码

#Converting data to a json file for upload
csv_data = csv_data.to_json()


#Updating data
cell_list = sheet.range('A1:J173')

for cell in cell_list:
    cell.value = csv_data

sheet.update_cells(cell_list)

Windows 10 Python 3.8

【问题讨论】:

    标签: python pandas loops google-sheets


    【解决方案1】:
    • 您想将数据框的数据放到 Google 电子表格中。
      • 在您的脚本中,csv_data.to_json() 中的csv_data 是数据框。
    • 您希望使用 gspread 和 python 来实现此目的。
      • 根据您的脚本,我是这样理解的。
    • 您已经能够使用 Sheets API 为 Google 电子表格获取和输入值。

    模式一:

    在这个模式中,使用了gspread的values_update的方法。

    示例脚本:

    spreadsheetId = "###"  # Please set the Spreadsheet ID.
    sheetName = "Sheet1"  # Please set the sheet name.
    csv_data =  # <--- please set the dataframe.
    
    client = gspread.authorize(credentials)
    values = [csv_data.columns.values.tolist()]
    values.extend(csv_data.values.tolist())
    spreadsheet.values_update(sheetName, params={'valueInputOption': 'USER_ENTERED'}, body={'values': values})
    

    模式 2:

    在这个模式中,使用了gspread-dataframe这个库。

    示例脚本:

    from gspread_dataframe import set_with_dataframe # Please add this.
    
    spreadsheetId = "###"  # Please set the Spreadsheet ID.
    sheetName = "Sheet1"  # Please set the sheet name.
    csv_data =  # <--- please set the dataframe.
    
    client = gspread.authorize(credentials)
    spreadsheet = client.open_by_key(spreadsheetId)
    worksheet = spreadsheet.worksheet(sheetName)
    set_with_dataframe(worksheet, csv_data)
    

    参考资料:

    【讨论】:

    • 嗨,Tanaike,第二种模式运行良好,感谢上帝,感谢上帝让 gspread 数据框库变得超级简单,基本上只需要一行代码。现在我只需要格式化所有内容,它应该准备好了,谢谢!
    • @user12239916 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多