Python simplejson.JSONDecodeError() Examples
The following are 30
code examples of simplejson.JSONDecodeError().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
simplejson
, or try the search function
.
Example #1
Source File: fileops.py From cooler with BSD 3-Clause "New" or "Revised" License | 6 votes |
def decode_attr_value(obj): """Decode a numpy object or HDF5 attribute into a JSONable object""" if hasattr(obj, "item"): o = obj.item() elif hasattr(obj, "tolist"): o = obj.tolist() elif isinstance(obj, six.string_types): try: o = datetime.strptime(obj, "%Y-%m-%dT%H:%M:%S.%f") except ValueError: try: o = json.loads(obj) except JSONDecodeError: o = obj else: o = obj return o
Example #2
Source File: stream.py From hoaxy-backend with GNU General Public License v3.0 | 6 votes |
def process_one_line(self, line): """process one line received from Twitter API. Return True if everything goes well, else False. """ # empty line, return if not line: return True try: jd = json.loads(line) except json.JSONDecodeError as err: logger.error('Json loads error: %s, raw data: %s', err, line) return False if not ('in_reply_to_status_id' in jd and 'user' in jd and 'id' in jd): logger.error('Not status tweet: %s', jd) return False self._counter += 1 if self._counter % self.window_size == 0: logger.info('TwitterStreamer received %s tweets', self._counter) for handler in self.handlers: if isinstance(handler, QueueHandler) and not handler.is_alive(): raise SystemExit('Consumer thread dead') handler.process_one(jd) return True
Example #3
Source File: spark.py From integrations-core with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _rest_request_to_json(self, address, object_path, service_name, tags, *args, **kwargs): """ Query the given URL and return the JSON response """ response = self._rest_request(address, object_path, service_name, tags, *args, **kwargs) try: response_json = response.json() except JSONDecodeError as e: self.service_check( service_name, AgentCheck.CRITICAL, tags=['url:%s' % self._get_url_base(address)] + tags, message='JSON Parse failed: {0}'.format(e), ) raise return response_json
Example #4
Source File: PyViCareService.py From PyViCare with Apache License 2.0 | 6 votes |
def __post(self,url,data): h = {"Content-Type":"application/json","Accept":"application/vnd.siren+json"} try: #if(self.oauth==None): # self.renewToken() j=self.oauth.post(url,data,headers=h) try: r=j.json() return r except JSONDecodeError: if j.status_code == 204: return json.loads("{\"statusCode\": 204, \"error\": \"None\", \"message\": \"SUCCESS\"}") else: return json.loads("{\"statusCode\":"+j.status_code+", \"error\": \"Unknown\", \"message\": \"UNKNOWN\"}") except TokenExpiredError as e: self.renewToken() return self._post(url,data)
Example #5
Source File: test_unicode.py From qgis-cartodb with GNU General Public License v2.0 | 6 votes |
def test_invalid_escape_sequences(self): # incomplete escape sequence self.assertRaises(json.JSONDecodeError, json.loads, '"\\u') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u12') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u123') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1234') # invalid escape sequence self.assertRaises(json.JSONDecodeError, json.loads, '"\\u123x"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u12x4"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1x34"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ux234"') if sys.maxunicode > 65535: # invalid escape sequence for low surrogate self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u0"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u00"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u000"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u000x"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u00x0"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u0x00"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\ux000"')
Example #6
Source File: core.py From pytablereader with MIT License | 6 votes |
def load_dict(self): self._validate() self._logger.logging_load() self.encoding = get_file_encoding(self.source, self.encoding) buffer = [] with open(self.source, "r", encoding=self.encoding) as fp: for line_idx, line in enumerate(fp): line = line.strip() if not line: continue try: buffer.append(json.loads(line, object_pairs_hook=OrderedDict)) except json.JSONDecodeError as e: raise ValidationError( "line {line_idx}: {msg}: {value}".format( line_idx=line_idx + 1, msg=e, value=line ) ) return buffer
Example #7
Source File: core.py From pytablereader with MIT License | 6 votes |
def load_dict(self): self._validate() self._logger.logging_load() buffer = [] for line_idx, line in enumerate(self.source.splitlines()): line = line.strip() if not line: continue try: buffer.append(json.loads(line, object_pairs_hook=OrderedDict)) except json.JSONDecodeError as e: raise ValidationError( "line {line_idx}: {msg}: {value}".format( line_idx=line_idx + 1, msg=e, value=line ) ) return buffer
Example #8
Source File: api.py From eclcli with Apache License 2.0 | 6 votes |
def create( self, url, session=None, method=None, **params ): """Create a new resource :param string url: The API-specific portion of the URL path :param Session session: HTTP client session :param string method: HTTP method (default POST) """ if not method: method = 'POST' ret = self._request(method, url, session=session, **params) # Should this move into _requests()? try: return ret.json() except json.JSONDecodeError: return ret
Example #9
Source File: schema_migrations.py From schematizer with Apache License 2.0 | 6 votes |
def get_schema_migration(request): new_schema_json = request.json_body.get('new_schema') old_schema_json = request.json_body.get('old_schema') target_schema_type = request.json_body.get('target_schema_type') _get_migration = SCHEMA_MIGRATION_STRATEGY_MAP.get(target_schema_type) if _get_migration is None: raise exceptions_v1.unsupported_target_schema_exception() try: return _get_migration( new_avro_schema=json.loads(new_schema_json), old_avro_schema=json.loads(old_schema_json) if old_schema_json else {} ) except json.JSONDecodeError: raise exceptions_v1.invalid_schema_exception()
Example #10
Source File: view.py From nefertari with Apache License 2.0 | 6 votes |
def prepare_request_params(self, _query_params, _json_params): """ Prepare query and update params. """ self._query_params = dictset( _query_params or self.request.params.mixed()) self._json_params = dictset(_json_params) ctype = self.request.content_type if self.request.method in ['POST', 'PUT', 'PATCH']: if ctype == 'application/json': try: self._json_params.update(self.request.json) except simplejson.JSONDecodeError: log.error( "Expecting JSON. Received: '{}'. " "Request: {} {}".format( self.request.body, self.request.method, self.request.url)) self._json_params = BaseView.convert_dotted(self._json_params) self._query_params = BaseView.convert_dotted(self._query_params) self._params = self._query_params.copy() self._params.update(self._json_params)
Example #11
Source File: test_unicode.py From Tautulli with GNU General Public License v3.0 | 6 votes |
def test_invalid_escape_sequences(self): # incomplete escape sequence self.assertRaises(json.JSONDecodeError, json.loads, '"\\u') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u12') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u123') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1234') # invalid escape sequence self.assertRaises(json.JSONDecodeError, json.loads, '"\\u123x"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u12x4"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1x34"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ux234"') if sys.maxunicode > 65535: # invalid escape sequence for low surrogate self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u0"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u00"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u000"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u000x"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u00x0"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u0x00"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\ux000"')
Example #12
Source File: updater.py From vidcutter with GNU General Public License v3.0 | 6 votes |
def done(self, reply: QNetworkReply) -> None: if reply.error() != QNetworkReply.NoError: self.logger.error(reply.errorString()) sys.stderr.write(reply.errorString()) return if os.getenv('DEBUG', False): self.log_request(reply) try: jsonobj = loads(str(reply.readAll(), 'utf-8')) reply.deleteLater() latest = jsonobj.get('tag_name') current = qApp.applicationVersion() self.mbox.show_result(latest, current) except JSONDecodeError: self.logger.exception('Updater JSON decoding error', exc_info=True) raise
Example #13
Source File: sql_lab.py From incubator-superset with Apache License 2.0 | 6 votes |
def to_dict(self) -> Dict[str, Any]: try: description = json.loads(self.description) except json.JSONDecodeError: description = None return { "id": self.id, "tab_state_id": self.tab_state_id, "database_id": self.database_id, "schema": self.schema, "table": self.table, "description": description, "expanded": self.expanded, } # events for updating tags
Example #14
Source File: core.py From incubator-superset with Apache License 2.0 | 6 votes |
def sqllab(self) -> FlaskResponse: """SQL Editor""" payload = { "defaultDbId": config["SQLLAB_DEFAULT_DBID"], "common": common_bootstrap_payload(), **self._get_sqllab_tabs(g.user.get_id()), } form_data = request.form.get("form_data") if form_data: try: payload["requested_query"] = json.loads(form_data) except json.JSONDecodeError: pass bootstrap_data = json.dumps( payload, default=utils.pessimistic_json_iso_dttm_ser ) return self.render_template( "superset/basic.html", entry="sqllab", bootstrap_data=bootstrap_data )
Example #15
Source File: compatibility.py From schematizer with Apache License 2.0 | 6 votes |
def is_avro_schema_compatible(request): try: req = requests_v1.AvroSchemaCompatibilityRequest(**request.json_body) return _is_schema_compatible( req.schema_json, req.namespace, req.source ) except simplejson.JSONDecodeError as e: log.exception("Failed to construct AvroSchemaCompatibilityRequest. {}" .format(request.json_body)) raise exceptions_v1.invalid_schema_exception( 'Error "{error}" encountered decoding JSON: "{schema}"'.format( error=str(e), schema=request.json_body['schema'] ) )
Example #16
Source File: json_util.py From smappPy with GNU General Public License v2.0 | 6 votes |
def next(self): read_buffer = self.stream.read(1) while True: try: json_obj = json.loads(read_buffer) if not self.stream.read(1) in [',',']']: raise Exception('JSON seems to be malformed: object is not followed by comma (,) or end of list (]).') return json_obj except JSONDecodeError: next_char = self.stream.read(1) read_buffer += next_char while next_char != '}': next_char = self.stream.read(1) if next_char == '': raise StopIteration read_buffer += next_char
Example #17
Source File: aiojikan.py From jikanpy with MIT License | 6 votes |
def _wrap_response( self, response: aiohttp.ClientResponse, url: str, **kwargs: Union[int, Optional[str]], ) -> Dict[str, Any]: """Parses the response as json, then runs check_response and add_jikan_metadata """ json_response: Dict[str, Any] = {} try: json_response = await response.json() if not isinstance(json_response, dict): json_response = {"data": json_response} except (json.decoder.JSONDecodeError, simplejson.JSONDecodeError): json_response = {"error": await response.text()} if response.status >= 400: raise APIException(response.status, json_response, **kwargs) return utils.add_jikan_metadata(response, json_response, url)
Example #18
Source File: jikan.py From jikanpy with MIT License | 6 votes |
def _wrap_response( response: requests.Response, url: str, **kwargs: Union[int, Optional[str]] ) -> Dict[str, Any]: """Parses the response as json, then runs check_response and add_jikan_metadata """ json_response: Dict[str, Any] = {} try: json_response = response.json() if not isinstance(json_response, dict): json_response = {"data": json_response} except (json.decoder.JSONDecodeError, simplejson.JSONDecodeError): # json failed to be parsed # this could happen, for example, when someone has been IP banned # and it returns the typical nginx 403 forbidden page json_response = {"error": response.text} if response.status_code >= 400: raise APIException(response.status_code, json_response, **kwargs) return utils.add_jikan_metadata(response, json_response, url)
Example #19
Source File: conftest.py From jikanpy with MIT License | 6 votes |
def response_mock(use_json_decoder=True): class ResponseMock: def __init__(self): self.status_code = 403 # simulate a banned user self.text = """<html> <head><title>403 Forbidden</title></head> <body> <center><h1>403 Forbidden</h1></center> <hr><center>nginx/1.15.5 (Ubuntu)</center> </body> </html> """ def json(self): if use_json_decoder: raise json.decoder.JSONDecodeError("Failed", "", 0) raise simplejson.JSONDecodeError("Failed", "", 0) return ResponseMock()
Example #20
Source File: conftest.py From jikanpy with MIT License | 6 votes |
def aio_response_mock(use_json_decoder=True): class ResponseMock: def __init__(self): self.status = 403 async def json(self): if use_json_decoder: raise json.decoder.JSONDecodeError("Failed", "", 0) raise simplejson.JSONDecodeError("Failed", "", 0) async def text(self): """Simulate a banned user""" return """<html> <head><title>403 Forbidden</title></head> <body> <center><h1>403 Forbidden</h1></center> <hr><center>nginx/1.15.5 (Ubuntu)</center> </body> </html> """ return ResponseMock()
Example #21
Source File: test_unicode.py From syntheticmass with Apache License 2.0 | 6 votes |
def test_invalid_escape_sequences(self): # incomplete escape sequence self.assertRaises(json.JSONDecodeError, json.loads, '"\\u') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u12') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u123') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1234') # invalid escape sequence self.assertRaises(json.JSONDecodeError, json.loads, '"\\u123x"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u12x4"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\u1x34"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ux234"') if sys.maxunicode > 65535: # invalid escape sequence for low surrogate self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u0"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u00"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u000"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u000x"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u00x0"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\u0x00"') self.assertRaises(json.JSONDecodeError, json.loads, '"\\ud800\\ux000"')
Example #22
Source File: __init__.py From ocl_web with Mozilla Public License 2.0 | 6 votes |
def debug_result(self, results): """ Some serious debug output. """ self.logger.debug('API %s' % (results.request.path_url)) self.logger.debug('%s RESULT: %s' % ( results.request.method, results.status_code)) if results.status_code == requests.codes.server_error: self.logger.error(results.content) elif len(results.content) > 0: try: self.logger.debug('%s JSON: %s' % (results.request.method, json.dumps(results.json(), sort_keys=True, indent=4, separators=(',', ': ')))) except json.JSONDecodeError: self.logger.error('%s %s JSON: Error decoding it: %s' % (results.request.method, results.request.path_url, results.content[:40])) else: self.logger.debug('%s no content.' % results.request.method)
Example #23
Source File: global_index.py From personfinder with Apache License 2.0 | 5 votes |
def _validate_input(self): try: for field_name in AdminGlobalIndexView._JSON_FIELDS: if not self.params.get(field_name): return self.error(400, 'Missing JSON value.') simplejson.loads(self.params.get(field_name)) except simplejson.JSONDecodeError: return self.error(400, 'Invalid JSON value.')
Example #24
Source File: vault.py From integrations-core with BSD 3-Clause "New" or "Revised" License | 5 votes |
def access_api(self, url, ignore_status_codes=None): if ignore_status_codes is None: ignore_status_codes = [] try: response = self.http.get(url) status_code = response.status_code if status_code >= 400 and status_code not in ignore_status_codes: msg = 'The Vault endpoint `{}` returned {}'.format(url, status_code) self.service_check(self.SERVICE_CHECK_CONNECT, self.CRITICAL, message=msg, tags=self._tags) raise ApiUnreachable(msg) json_data = response.json() except JSONDecodeError as e: msg = 'The Vault endpoint `{}` returned invalid json data: {}.'.format(url, e) self.service_check(self.SERVICE_CHECK_CONNECT, self.CRITICAL, message=msg, tags=self._tags) raise ApiUnreachable(msg) except requests.exceptions.Timeout: msg = 'Vault endpoint `{}` timed out after {} seconds'.format(url, self.http.options['timeout'][0]) self.service_check(self.SERVICE_CHECK_CONNECT, self.CRITICAL, message=msg, tags=self._tags) raise ApiUnreachable(msg) except (requests.exceptions.RequestException, requests.exceptions.ConnectionError) as e: msg = 'Error accessing Vault endpoint `{}`: {}'.format(url, e) self.service_check(self.SERVICE_CHECK_CONNECT, self.CRITICAL, message=msg, tags=self._tags) raise ApiUnreachable(msg) return json_data
Example #25
Source File: test_fail.py From Tautulli with GNU General Public License v3.0 | 5 votes |
def test_truncated_input(self): test_cases = [ ('', 'Expecting value', 0), ('[', "Expecting value or ']'", 1), ('[42', "Expecting ',' delimiter", 3), ('[42,', 'Expecting value', 4), ('["', 'Unterminated string starting at', 1), ('["spam', 'Unterminated string starting at', 1), ('["spam"', "Expecting ',' delimiter", 7), ('["spam",', 'Expecting value', 8), ('{', 'Expecting property name enclosed in double quotes', 1), ('{"', 'Unterminated string starting at', 1), ('{"spam', 'Unterminated string starting at', 1), ('{"spam"', "Expecting ':' delimiter", 7), ('{"spam":', 'Expecting value', 8), ('{"spam":42', "Expecting ',' delimiter", 10), ('{"spam":42,', 'Expecting property name enclosed in double quotes', 11), ('"', 'Unterminated string starting at', 0), ('"spam', 'Unterminated string starting at', 0), ('[,', "Expecting value", 1), ] for data, msg, idx in test_cases: try: json.loads(data) except json.JSONDecodeError: e = sys.exc_info()[1] self.assertEqual( e.msg[:len(msg)], msg, "%r doesn't start with %r for %r" % (e.msg, msg, data)) self.assertEqual( e.pos, idx, "pos %r != %r for %r" % (e.pos, idx, data)) except Exception: e = sys.exc_info()[1] self.fail("Unexpected exception raised %r %s" % (e, e)) else: self.fail("Unexpected success parsing '%r'" % (data,))
Example #26
Source File: Drug.py From data_pipeline with Apache License 2.0 | 5 votes |
def create_shelf(self, uris, key_f): #sanity check inputs assert uris is not None assert len(uris) > 0 # Shelve creates a file with specific database. Using a temp file requires a workaround to open it. # dumbdbm creates an empty database file. In this way shelve can open it properly. #note: this file is never deleted! filename = tempfile.NamedTemporaryFile(delete=True).name shelf = shelve.Shelf(dict=dbm.open(filename, 'n')) for uri in uris: with URLZSource(uri).open() as f_obj: #for python2 we need to decode utf-8 if sys.version_info < (3, 0): f_obj = codecs.getreader("utf-8")(f_obj) for line_no, line in enumerate(f_obj): try: obj = json.loads(line) except json.JSONDecodeError as e: self.logger.error("Unable to read line %d %s %s", line_no, uri, e) raise e key_value = key_f(obj) key = self.str_hook(key_value) if key is not None: if key in shelf: raise ValueError("Duplicate key %s in uri %s" % (key,uri)) shelf[key] = obj return shelf
Example #27
Source File: repo_index.py From personfinder with Apache License 2.0 | 5 votes |
def _validate_input(self): if self._category_permissions['everything_else']: # It happens that all of the JSON fields fall into this permission # category. try: for field_name in AdminRepoIndexView._JSON_FIELDS: if not self.params.get(field_name): return self.error(400, 'Missing JSON value.') simplejson.loads(self.params.get(field_name)) except simplejson.JSONDecodeError: return self.error(400, 'Invalid JSON value.')
Example #28
Source File: test_errors.py From syntheticmass with Apache License 2.0 | 5 votes |
def test_decode_error(self): err = None try: json.loads('{}\na\nb') except json.JSONDecodeError: err = sys.exc_info()[1] else: self.fail('Expected JSONDecodeError') self.assertEqual(err.lineno, 2) self.assertEqual(err.colno, 1) self.assertEqual(err.endlineno, 3) self.assertEqual(err.endcolno, 2)
Example #29
Source File: test_errors.py From syntheticmass with Apache License 2.0 | 5 votes |
def test_scan_error(self): err = None for t in (u, b): try: json.loads(t('{"asdf": "')) except json.JSONDecodeError: err = sys.exc_info()[1] else: self.fail('Expected JSONDecodeError') self.assertEqual(err.lineno, 1) self.assertEqual(err.colno, 10)
Example #30
Source File: Drug.py From data_pipeline with Apache License 2.0 | 5 votes |
def create_shelf_multi(self, uris, key_f): #sanity check inputs assert uris is not None assert len(uris) > 0 # Shelve creates a file with specific database. Using a temp file requires a workaround to open it. # dumbdbm creates an empty database file. In this way shelve can open it properly. #note: this file is never deleted! filename = tempfile.NamedTemporaryFile(delete=True).name shelf = shelve.Shelf(dict=dbm.open(filename, 'n')) for uri in uris: with URLZSource(uri).open() as f_obj: #for python2 we need to decode utf-8 if sys.version_info < (3, 0): f_obj = codecs.getreader("utf-8")(f_obj) for line_no, line in enumerate(f_obj): try: obj = json.loads(line) except json.JSONDecodeError as e: self.logger.error("Unable to read line %d %s", line_no, uri) raise e key_value = key_f(obj) key = self.str_hook(key_value) if key is not None: existing = shelf.get(key,[]) existing.append(obj) shelf[key] = existing return shelf