django - python google sheets API 出现无效的 JSON 负载错误

标签 django python-3.5 google-sheets-api

我正在尝试使用 google 表格 API 将新行附加到现有的 google 表格。身份验证已经成功进行,代码能够读取工作表的内容。 但是,当我尝试使用 service.spreadsheets().values().append(...) 时,我收到以下 HttpError: "Invalid JSON payload received. Unknown name "": 根元素必须是一条消息。”

这是我的代码:

from json import dumps as jsdumps
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
discoveryUrl = discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?version=v4')
service = discovery.build('sheets', 'v4', http=http, discoveryServiceUrl=discoveryUrl)

spreadsheetId = '{...}'
rangeName = "Sheet1"
value_input_option = 'RAW'
insert_data_option = 'INSERT_ROWS'
value_range_body = {
    "range": rangeName,
    "majorDimension:": "ROWS",
    "values": list(rd.values()), # rd is just a dictionary with some stuff in it
}

那么当我尝试发送它时:

request = service.spreadsheets().values().append(spreadsheetId=spreadsheetId, range=rangeName, valueInputOption=value_input_option, insertDataOption=insert_data_option, body=jsdumps(value_range_body))

运行 request.execute() 后,出现上面列出的错误。

最佳答案

我遇到了类似的问题。这对我有用:

   spreadsheetId = 'foobar'
    range = 'Sheet1!A1'
    body = {
        'values': [data],
        "majorDimension:": "ROWS",

    }



    self.service.spreadsheets().values().append(spreadsheetId=spreadsheet_id, range=range,
                                                    valueInputOption='RAW',
                                                    insertDataOption='INSERT_ROWS',
                                                    body=body).execute()

关于django - python google sheets API 出现无效的 JSON 负载错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44706584/

相关文章:

python - 在 Django 中初始化 GeopositionField

python - 使用 amqp 后端和数据库后端获取 Celery 结果有什么区别?

javascript - 我可以使用 updateCells 将数据写入一行吗

python - 来自 BioPython 的 codeml 永远不会完成

python - 如何使用 Python 从 TOML 文件中读取 Google API 凭据?

c# - 我想使用 google sheet api v4 删除 google sheet 中的行

django - 如何更改 Django 表格行的颜色?

Django - 模板标签中的 verbose_name

python - Pandas 数据框在满足双重标准时更改值

python - 一个类应该在初始化时转换参数的类型吗?如果是这样,怎么做?