Я пытаюсь использовать 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?