Получение всех ответов на опрос SurveyMonkey в CSV - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь использовать API SurveyMonkey для сбора ответов на опрос. В идеале я мог бы собрать ответы и их метаданные в CSV. Я использую Python 3.6

Я пытался использовать решение , описанное здесь , но этот ответ устарел. Обратите внимание, что на некоторых страницах моего опроса нет вопросов, поэтому я внес небольшое изменение. Мой код:

import pandas as pd
import requests


headers={"Authorization": "Bearer %s" % MY_ACCESS_TOKEN,
                           "Content-Type": "application/json"}
url = "https://api.surveymonkey.net/v3/surveys/%s/details" % (my_survey_id)
response = requests.get(url, headers=headers)
survey_data = response.json()

answer_dict = {}
for page in survey_data['pages']:
    for question in page['questions']:
        # Rows, choices, other, and cols all make up the possible answers
        if question.get('answers'):
          answers = question['answers'].get('rows', [])\
            + question['answers'].get('choices', [])\
            + question['answers'].get('other', [])\
             + question['answers'].get('cols', [])

          for answer in answers:
              answer_dict[answer['id']] = answer

df = pd.DataFrame(answer_dict)
df.to_csv('output.csv')

Я получаю эту ошибку:

Traceback (most recent call last):
  File "survey-monkey-api-testing.py", line 19, in <module>
    + question['answers'].get('cols', [])
TypeError: can only concatenate list (not "dict") to list

Есть ли способ программно получить ответы на опрос в плоский JSON?

...