【问题标题】:"Invalid JSON payload received. Unknown name "range" at 'data[0]'" when using Google Sheet APIv4 batchUpdate() in Python“收到无效的 JSON 有效负载。在 Python 中使用 Google Sheet APIv4 batchUpdate() 时,‘data[0]’处的未知名称“范围””
【发布时间】:2020-06-10 16:43:51
【问题描述】:

我遵循了指南中的参考代码——https://developers.google.com/sheets/api/guides/values。但是,当我调用 batchUpdate() 时,我收到错误“收到无效的 JSON 有效负载。‘数据 [0]’处的未知名称“范围”:原始字段不重复,无法启动列表”。

对可能出现的问题以及如何解决问题有任何建议吗?

# Preparing data to be written back to sheet
data = [
    {
        'range': range_name,
        'values': values
    },
]

body = {
    'valueInputOption': "USER_ENTERED",
    'data': data,
}

request = service.spreadsheets().values().batchUpdate(spreadsheetId=SPREADSHEET_ID, body=body)
response = request.execute()

“正文”的内容 =

{'valueInputOption': 'USER_ENTERED',
 'data': [{'range': ['!B251:I251', '!B252:I252', '!B254:I254', '!B256:I256'],
   'values': "[['2020-06-04', 2, '123456789098765421abcdefg', '', 'test1', 1, None, 1], ['2020-06-04', 1, '123456789098765421abcdefg', '', 'test2', -1, None, 1], ['2020-06-04', 2, '123456789098765421abcdefg', '', 'test1', 3, None, 1], ['2020-06-04', 1, '123456789098765421abcdefg', '', 'test9', 4, None, 1]]"}]}

myCode

来自指南,

values = [
    [
        # Cell values ...
    ],
    # Additional rows
]
data = [
    {
        'range': range_name,
        'values': values
    },
    # Additional ranges to update ...
]
body = {
    'valueInputOption': value_input_option,
    'data': data
}
result = service.spreadsheets().values().batchUpdate(
    spreadsheetId=spreadsheet_id, body=body).execute()
print('{0} cells updated.'.format(result.get('totalUpdatedCells')))

但是,错误消息似乎表明参数“范围”未知?

【问题讨论】:

标签: python google-sheets-api


【解决方案1】:

几件事:

  • 您正在尝试传递给 range 和范围数组,而该方法要求每个项目有一个范围,正确的请求是:
 "data": [
    {
      "range1": "",
      "values1": []
    },
    {
      "range2": "",
      "values2": []
    }
  ]
  • 您将None 用于空值 - 相反,您需要在逗号之间留一个空格:1,2, ,4(如果您想将其作为字符串传递,则将 None 包裹在 " 引号中
  • JSON 对象需要双引号 " 而不是单引号 ' 用于 vlaues 和范围表示法

我建议您在实现到 Python 之前使用 Try this API 功能测试您的请求语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2017-11-26
    • 2020-10-25
    • 2019-09-15
    • 1970-01-01
    相关资源
    最近更新 更多