【问题标题】:Python3 google spreadsheet api batchUpdate Json formattingPython3 谷歌电子表格 api batchUpdate Json 格式化
【发布时间】:2017-08-11 14:21:51
【问题描述】:

我想使用谷歌电子表格 api batchUpdate 来用相同的请求更新不同的值。

在文档示例中,他们使用 dict 来存储 Json 请求,但我需要多次设置相同的属性 (insertDimension)。 这是 Google 预期的请求

{
  "requests": [
    {
      "insertDimension": {
        "range": {
          "sheetId": sheetId,
          "dimension": "COLUMNS",
          "startIndex": 2,
          "endIndex": 4
        },
        "inheritBefore": true
      }
    },
    {
      "insertDimension": {
        "range": {
          "sheetId": sheetId,
          "dimension": "ROWS",
          "startIndex": 0,
          "endIndex": 3
        },
        "inheritBefore": false
      }
    },
  ],
}

我尝试使用 json.dumps

mydata = json.dumps('''

"requests": [{{"updateDimensionProperties": {"range": {"sheetId": 0,"dimension": "ROWS","startIndex": 0 “结束索引”:50 }, “特性”: { “像素大小”:10 }, “字段”:“像素大小” } } } ] ''')

但我收到此错误消息 “收到无效的 JSON 有效负载。未知名称“”:根元素必须是消息。”

【问题讨论】:

    标签: json python-3.x google-sheets


    【解决方案1】:

    您的请求无效,因为它从未说明它是什么类型的请求:insertDimension 请求。正确的形式是

    {
    "requests": [
      {
      "insertDimension": { 
        # required fields at https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request#InsertDimensionRequest
      }
      },
      {
      "insertDimension": { 
        # required fields at https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request#InsertDimensionRequest
      }
      }]
    }
    

    顺便说一句,其中一个字段是inheritFromBefore,而不是inheritBefore

    【讨论】: