comparison python/survey_parser.py @ 2957:ca1abc3d8ef6

UTF-8 encoding comment and survey analysis scripts
author Brecht De Man <b.deman@qmul.ac.uk>
date Tue, 21 Nov 2017 10:40:22 +0100
parents 356a09527abc
children 1e5a9d92daa0 d25e09e3b8fe
comparison
equal deleted inserted replaced
2956:356a09527abc 2957:ca1abc3d8ef6
34 # CODE 34 # CODE
35 35
36 storage = {"globals":{}, "pages": {}} 36 storage = {"globals":{}, "pages": {}}
37 37
38 def decodeSurveyTree(session_id, surveyroot, store): 38 def decodeSurveyTree(session_id, surveyroot, store):
39 # Get all the childs 39 # Get all the children
40 for survey_entry in list(surveyroot): 40 for survey_entry in list(surveyroot):
41 survey_id = survey_entry.get("ref") 41 survey_id = survey_entry.get("ref")
42 if survey_id not in store.keys(): 42 if survey_id not in store.keys():
43 store[survey_id] = {"responses": []} 43 store[survey_id] = {"responses": []}
44 survey_type = survey_entry.get("type") 44 survey_type = survey_entry.get("type")
140 if len(post_survey) is not 0: 140 if len(post_survey) is not 0:
141 if "post" not in page_store.keys(): 141 if "post" not in page_store.keys():
142 page_store["post"] = {} 142 page_store["post"] = {}
143 page_store["post"] = decodeSurveyTree(subject_id, post_survey, page_store["post"]) 143 page_store["post"] = decodeSurveyTree(subject_id, post_survey, page_store["post"])
144 144
145 #Storage now holds entire survey structure 145 # Storage now holds entire survey structure
146 # Time to start exporting to files 146 # Time to start exporting to files
147 147
148 # Store globals 148 # Store globals
149 file_store_root = folder_name + 'surveys/' 149 file_store_root = folder_name + 'surveys/'
150 for position in storage["globals"].keys(): 150 for position in storage["globals"].keys():
151 for ref in storage["globals"][position].keys(): 151 for ref in storage["globals"][position].keys():
152 with open(file_store_root+ref+".csv", "w") as f: 152 with open(file_store_root+ref+".csv", "w") as f:
153 filewriter = csv.writer(f, delimiter=",") 153 filewriter = csv.writer(f, delimiter=",")
154 filewriter.writerow(storage["globals"][position][ref]["header"]) 154 filewriter.writerow(storage["globals"][position][ref]["header"])
155 for row in storage["globals"][position][ref]["responses"]: 155 for row in storage["globals"][position][ref]["responses"]:
156 row = [element.encode("utf-8") for element in row]
156 filewriter.writerow(row) 157 filewriter.writerow(row)
157 for page_name in storage["pages"].keys(): 158 for page_name in storage["pages"].keys():
158 for position in storage["pages"][page_name].keys(): 159 for position in storage["pages"][page_name].keys():
159 if not os.path.exists(file_store_root + page_name): 160 if not os.path.exists(file_store_root + page_name):
160 os.makedirs(file_store_root + page_name) 161 os.makedirs(file_store_root + page_name)
161 for ref in storage["pages"][page_name][position].keys(): 162 for ref in storage["pages"][page_name][position].keys():
162 with open(file_store_root+page_name+"/"+ref+".csv", "w") as f: 163 with open(file_store_root+page_name+"/"+ref+".csv", "w") as f:
163 filewriter = csv.writer(f, delimiter=",") 164 filewriter = csv.writer(f, delimiter=",")
164 filewriter.writerow(storage["pages"][page_name][position][ref]["header"]) 165 filewriter.writerow(storage["pages"][page_name][position][ref]["header"])
165 for row in storage["pages"][page_name][position][ref]["responses"]: 166 for row in storage["pages"][page_name][position][ref]["responses"]:
167 row = [element.encode("utf-8") for element in row]
166 filewriter.writerow(row) 168 filewriter.writerow(row)
167 169
168 #Time to plot 170 # Time to plot
169 171
170 def plotDurationHistogram(store, plot_id, saveloc): 172 def plotDurationHistogram(store, plot_id, saveloc):
171 x = [] 173 x = []
172 for row in store["responses"]: 174 for row in store["responses"]:
173 r_temp = row[1] 175 r_temp = row[1]