ONS: Convert CSV to JSON/TSV
- As a system
- I want to parse a CSV file from ONS and convert it into JSON and TSV observations in JSON repository
- In order to store the data from ONS
Criteria of acceptance
-
The dataset code MUST be the name of the CSV file without its extension -
The dataset name MUST be title of the website page containing the filename -
The number of produced series MUST be equal to the number of columns, except column A -
The series names MUST be equal to values of row 1, except column A -
The series codes MUST be equal to values of row 2, except column A -
The dimension "unit" CAN be the union of values of rows 3 and 4, except column A -
The release date (see #104 (closed)) SHOULD (if "released_at" property is voted for) be values of row 5, except column A -
The row 6 MUST be stored as-is in a "next_release_at" property of series.json
(see #104 (closed)) -
The series notes MUST be equal to values of row 7, except column A -
Starting with row 8, periods and data MUST be stored, until a blank cell in column A or the period in column A indicates a different frequency -
If column A defines many frequencies, they MUST be stored as different series of the same dataset -
If column A defines many frequencies, they MUST be concatenated to series name and code in order to distinguish them -
A hard-coded dimension "frequency" MUST be created, using the frequencies found in the CSV, using the usual values labels (M = "Monthly", Q = "Quarterly", etc.) -
Visual inspection of data and metadata
Hints
- assert that cell A1 contains string 'Title'
- assert that cell A2 contains string 'CDID'
- assert that cell A3 contains string 'PreUnit'
- assert that cell A4 contains string 'Unit
- assert that cell A5 contains string 'Release Date'
- assert that cell A6 contains string 'Next release'
- assert that cell A7 contains string 'Important Notes'
- use cell A8 to infer frequency and store it in metadata as dimension
Edited by Bruno Duyé