当用于创建调查投票的 JSON 字符串有效时,SurveyMonkey API 错误 JSON 字符串出现错误
SurveyMonkey API Error400 on bad JSON string when JSON string for creating survey poll is valid
我正在研究以编程方式创建调查的方法,并遇到了 SurveyMonkey APIs。我在我的帐户上手动创建了一个空调查并创建了一个草稿应用程序并从那里获得了一个访问令牌。然后我 复制并粘贴 API 文档中 creating a survey question 部分的示例代码来试用。
您还可以看到代码 here,其中调查 ID 和页面 ID 是使用 /surveys
和 /surveys/{id}/pages
端点获取的。
但是,我收到以下错误。
{u'error': {u'docs': u'https://developer.surveymonkey.com/api/v3/#error-codes', u'message': u'The body provided was not a proper JSON string.', u'http_status_code': 400, u'id': u'1001', u'name': u'Bad Request'}}
我检查了 JSON 对象是否有效并且包含文档中指定的所有必需参数。我还尝试了一些更小、更简单的问题,但仍然没有成功。如果我传入一个空的 JSON 对象,它会抱怨缺少必需的参数。我想知道是否有人可以指出我做错了什么。谢谢!
问题是您实际上没有以 json 正确发送正文。
url = "https://api.surveymonkey.net/v3/surveys/%s/pages/%s/questions" % (survey_id, page_id)
r = s.post(url, data=payload)
print r.json()
你需要json.dumps(payload)
import json
url = "https://api.surveymonkey.net/v3/surveys/%s/pages/%s/questions" % (survey_id, page_id)
r = s.post(url, data=json.dumps(payload))
print r.json()
在较新版本的 requests
库中,您可以为此使用 json
kwarg。
url = "https://api.surveymonkey.net/v3/surveys/%s/pages/%s/questions" % (survey_id, page_id)
r = s.post(url, json=payload)
print r.json()
我正在研究以编程方式创建调查的方法,并遇到了 SurveyMonkey APIs。我在我的帐户上手动创建了一个空调查并创建了一个草稿应用程序并从那里获得了一个访问令牌。然后我 复制并粘贴 API 文档中 creating a survey question 部分的示例代码来试用。
您还可以看到代码 here,其中调查 ID 和页面 ID 是使用 /surveys
和 /surveys/{id}/pages
端点获取的。
但是,我收到以下错误。
{u'error': {u'docs': u'https://developer.surveymonkey.com/api/v3/#error-codes', u'message': u'The body provided was not a proper JSON string.', u'http_status_code': 400, u'id': u'1001', u'name': u'Bad Request'}}
我检查了 JSON 对象是否有效并且包含文档中指定的所有必需参数。我还尝试了一些更小、更简单的问题,但仍然没有成功。如果我传入一个空的 JSON 对象,它会抱怨缺少必需的参数。我想知道是否有人可以指出我做错了什么。谢谢!
问题是您实际上没有以 json 正确发送正文。
url = "https://api.surveymonkey.net/v3/surveys/%s/pages/%s/questions" % (survey_id, page_id)
r = s.post(url, data=payload)
print r.json()
你需要json.dumps(payload)
import json
url = "https://api.surveymonkey.net/v3/surveys/%s/pages/%s/questions" % (survey_id, page_id)
r = s.post(url, data=json.dumps(payload))
print r.json()
在较新版本的 requests
库中,您可以为此使用 json
kwarg。
url = "https://api.surveymonkey.net/v3/surveys/%s/pages/%s/questions" % (survey_id, page_id)
r = s.post(url, json=payload)
print r.json()