2017-06-26 4 views
0

これはかなり新しく、ガイダンスやヘルプは非常に高く評価されています。IDから値を取得するJSONレスポンスサーベイモンキーAPI v3

{ 
    "per_page": 50, 
    "total": 5114, 
    "data": [ 
    { 
     "total_time": 40, 
     "href": "https://api.surveymonkey.net/v3/surveys/surveyID/responses/ID", 
     "custom_variables": {}, 
     "ip_address": "IP ADDRESS", 
     "id": "ID", 
     "logic_path": {}, 
     "date_modified": "2015-12-01T05:31:22+00:00", 
     "response_status": "completed", 
     "custom_value": "", 
     "analyze_url": "http://www.surveymonkey.com/analyze/browse/ID?respondent_id=ID", 
     "pages": [ 
     { 
      "id": "220527570", 
      "questions": [ 
      { 
       "id": "872991507", 
       "answers": [ 
       { 
        "choice_id": "9573882449", 
        "row_id": "9573882439" 
       } 
       ] 

は私が取得したいと思います:私は、次のようなものとしてからの応答を取得

import requests 
import json 

client = requests.session() 

headers = { 
    "Authorization": "bearer %s" % "AccessTOKEN", 
    "Content-Type": "application/json" 
} 

HOST = "https://api.surveymonkey.net" 
SURVEY_LIST_ENDPOINT = "/v3/surveys/SURVEYID/responses/bulk" 

uri = "%s%s" % (HOST, SURVEY_LIST_ENDPOINT) 

response = client.get(uri, headers=headers) 

response_json = response.json() 

print(response_json['data']) 

:私は現在、調査回答のリストを持っている

iは、次の呼び出しを形成し得ますchoice_idからの実際の応答値、例えば "Yes、No、Maybe"?事前に

多くの多くのおかげで、 ポン

答えて

0

今それが同様に回答テキストを持っているAPIから返された直接のペイロードがありません。

あなたはsurvey details最初を取得する必要があります:

SURVEY_DETAIL_ENDPOINT = "/v3/surveys/SURVEYID/details" 
uri = "%s%s" % (HOST, SURVEY_DETAIL_ENDPOINT) 

response = client.get(uri, headers=headers) 

survey_data = response.json() 

その後、あなたはおそらく、ルックアップ辞書を作成するために、答えをループにしたいです。おおよそ次のようになります:

私はこれがループのために大雑把に見えますが、基本的には調査全体を横断しています。これは、選択肢IDがグローバルに一意である(つまり、列、行、選択肢などの間で衝突がない)ために機能します。

次に、answerの回答でanswer_dict[answer['choice_id']]を実行すると、回答の詳細をすべて簡単に取得できます。

API自体で応答テキストを入力するオプションが許可されていれば、悪い考えではありません。

+0

ありがとうございました!私は何かを学んだ:) –

関連する問題