LimesurveyRC: Is it possible to retrieve answer options with list_questions?

More
9 months 2 weeks ago - 9 months 2 weeks ago #187686 by datamunger
I am working on an application where I need to retrieve the questions including answer options for a bunch of surveys in python. Currently, I have a nested loop that goes through each survey, and retrieves anweroptions for each qid within that survey. The query time for this is about 15 - 60 seconds per survey, whereas a simple list_questions query only takes a few seconds. Is there any way to retrieve the answeroptions alongside other question with the list_questions (or another) command to speed this process up, and to avoid bombarding the API with queries?
Currently, my API query looks like this:
method = "get_question_properties"
    for i in surveyIDs: # surveyIDs is a list of the surveyIDs the user has access to
        # 'questions[i]' is a dataframe containing the results of a 'list_questions' query
        questions[i]['answeroptions'] = None # add column for answeroptions
        for index, row in questions[i].iterrows(): # for each question ID, we need to make a new API call
            row['answeroptions'] = api.query(method=method, params=OrderedDict([
                    ("sSessionKey", api.session_key),
                    ("iQuestionID", row['qid']),
                    ("aQuestionSettings", ['answeroptions'])
                ]))['answeroptions']
            if row['answeroptions'] == 'No available answer options': # if no answer options are provided, we try to use the parent's answer options (e.g. array questions)
                try:
                    row['answeroptions'] = questions[i][questions[i]['qid']==row['parent_qid']]['answeroptions'].reset_index(drop=True)[0]
                except: row['answeroptions'] = None # if this fails too (usually means there is no parent, and the question is not a real question), set it to None
Last edit: 9 months 2 weeks ago by datamunger.

Please Log in to join the conversation.

LimeSurvey Partners
More
9 months 2 weeks ago #187770 by DenisChenu
You can create your own extended function for remotecontrol : extensions.sondages.pro/development-and-...i/documentation.html

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
An error happen ? Before make a new topic : remind the Debug mode .

Please Log in to join the conversation.

More
9 months 2 weeks ago #187826 by datamunger
Thanks! Unfortunately, I am not the administrator of this installation, so I don't have the kind of access that would enable me to do this.

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now