def parse_query_string(query_string): """ Return dict containing query string values. uris can be entered as ?uris.0=http:...&uris.1=http:... """ query_string = urllib.unquote(query_string).decode('utf-8') try: parsed_query = jsonurl.parse_query(query_string) if "output" not in parsed_query.keys(): parsed_query['output'] = 'html' # Hack to escape words in Unicode strings for Virtuoso. # Can't just escape the whole string as e.g. "bribe OR bribery" fails. if "filter" in parsed_query.keys(): filter_words = [] for each in parsed_query['filter'].split(): try: filter_words.append(each.decode('ascii')) except UnicodeEncodeError: filter_words.append("'" + each + "'") parsed_query['filter'] = ' '.join(filter_words) return parsed_query except ValueError as e: raise ViewerException("Query URL is malformed: {}".format(e.message))
def setUpClass(cls): cls.d = {"user.names" : ["richard", "jones"]} cls.query_string = jsonurl.query_string(cls.d) cls.parsed_query = jsonurl.parse_query(cls.query_string)
def setUpClass(cls): cls.d = {"escape_me" : "I'll need escaping"} cls.query_string = jsonurl.query_string(cls.d) cls.parsed_query = jsonurl.parse_query(cls.query_string)
def setUpClass(cls): cls.d = {"one": 1, "two": [2, 3, 4]} cls.query_string = jsonurl.query_string(cls.d) cls.args = jsonurl.dict_to_args(cls.d) cls.parsed_query = jsonurl.parse_query(cls.query_string)
def setUpClass(cls): cls.d = {"one": {"two": 2, "three": 3}, "four": 4} cls.query_string = jsonurl.query_string(cls.d) cls.args = jsonurl.dict_to_args(cls.d) cls.parsed_query = jsonurl.parse_query(cls.query_string)