What version number can I use incase of default

Hi All
I am using pyodk to build a dashboard (initially development is being done in JuputerLab), when I fetch data(submissions), it comes in the form of dictionary that contains list or more dictionaries (depending on the form design). I decided to use client.get() method to reduce parsing lists or other dictionaries. I thought .get method will return all submission in the form of .xlsx but it returns the actual form in xlsx format.

So I have 2 questions

  1. some of my forms do not have a version number (shows default), thus, I have issues using the method(client.get()) describe in this documentation. Is there a way I can fetch forms using default version.
  2. Is there a way I can download all submissions in the form of CSV (with repeat sections as part of the same CSV).

1. What is the issue? Please be detailed.
I would like to use the following method to get form as .xlsx.

r = client.get('/projects/{projectId}/forms/{xmlFormId}/versions/{version}.xlsx')

However, since, some of my forms do not have version number (are default), I can getting the following error

b'{"message":"Could not find the resource you were looking for.","code":404.1}'

Is there a way I can use the default version of the form for .get method.

Second, is there a method to fetch all data in the form of CSV (instead of dictionary to reduce parsing).

2. What steps can we take to reproduce this issue?
For problem 1, I have tried tried using default.xlsx or 0.xlsx but it also generates the same error.

Thanks in advance for helping.

Since the XForms specification allows blank strings as versions (and Central treats the lack of a version as a blank string), you may run into trouble using this resource if you have such a Form. In this case, pass the special value ___ (three underscores) as the version to retrieve the blank version version.

Source: https://docs.getodk.org/central-api-form-management/#getting-form-version-details

1 Like