Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django python google sheets API的JSON有效负载错误无效_Django_Python 3.5_Google Sheets Api - Fatal编程技术网

Django python google sheets API的JSON有效负载错误无效

Django python google sheets API的JSON有效负载错误无效,django,python-3.5,google-sheets-api,Django,Python 3.5,Google Sheets Api,我正在尝试使用GoogleSheetsAPI将新行附加到现有的GoogleSheet。身份验证已经成功进行,代码能够读取工作表的内容。 但是,当我尝试使用service.spreadsheets().values().append(…)时,我得到了以下HttpError:“接收到无效的JSON负载。未知名称”“:根元素必须是消息。” 这是我的密码: from json import dumps as jsdumps credentials = get_credentials() http = c

我正在尝试使用GoogleSheetsAPI将新行附加到现有的GoogleSheet。身份验证已经成功进行,代码能够读取工作表的内容。 但是,当我尝试使用
service.spreadsheets().values().append(…)
时,我得到了以下HttpError:
“接收到无效的JSON负载。未知名称”“:根元素必须是消息。”

这是我的密码:

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()

您的“rangeName”变量似乎不完整。范围应类似于“Sheet1!A1:C3”。你尝试过这种格式吗?[meta]我发现这是一个中文版的页面:问题ID也与Stackoverflow上的匹配。遗憾的是,他们可能无法访问原始的Stackoverflow,而这可能是他们唯一的选择。政治造成了如此多的浪费。