json – Extractors for JSON data extracting.

class data_extractor.json.JSONExtractor(*args: Any, **kwargs: Any)

Bases: AbstractSimpleExtractor

Use JSONPath expression implementated by jsonpath-extractor, jsonpath-rw or jsonpath-rw-ext packages for JSON data extracting. Change json_extractor_backend value to indicate which package to use.

>>> import data_extractor.json
>>> from data_extractor.json import JSONPathExtractor
>>> data_extractor.json.json_extractor_backend = JSONPathExtractor

Before extracting, should parse the JSON text into Python object.

Parameters:

expr (str) – JSONPath Expression.

extract(element: Any) Any

Extract data or subelement from element.

Parameters:

element (Any) – The target data node element.

Returns:

Data or subelement.

Return type:

Any

Raises:

ExprError – Extractor Expression Error.

extract_first(element: Any, default: Any = sentinel) Any

Extract the first data or subelement from extract method call result.

Parameters:
  • element (Any) – The target data node element.

  • default (Any, optional) – Default value when not found. Default: data_extractor.utils.sentinel.

Returns:

Data or subelement.

Return type:

Any

Raises:

ExtractError – Thrown by extractor extracting wrong data.

class data_extractor.json.JSONPathExtractor(*args: Any, **kwargs: Any)

Bases: JSONExtractor

Use JSONPath expression implementated by jsonpath-extractor package for JSON data extracting.

Before extracting, should parse the JSON text into Python object.

Parameters:

expr (str) – JSONPath Expression.

extract(element: Any) Any

Extract data from JSON data.

Parameters:

element (Any) – Python object parsed from JSON text.

Returns:

Data.

Return type:

Any

extract_first(element: Any, default: Any = sentinel) Any

Extract the first data or subelement from extract method call result.

Parameters:
  • element (Any) – The target data node element.

  • default (Any, optional) – Default value when not found. Default: data_extractor.utils.sentinel.

Returns:

Data or subelement.

Return type:

Any

Raises:

ExtractError – Thrown by extractor extracting wrong data.

class data_extractor.json.JSONPathRWExtExtractor(*args: Any, **kwargs: Any)

Bases: JSONPathRWExtractor

Use JSONPath expression implementated by jsonpath-rw-ext package for JSON data extracting.

Before extracting, should parse the JSON text into Python object.

Parameters:

expr (str) – JSONPath Expression.

extract(element: Any) Any

Extract data from JSON data.

Parameters:

element (Any) – Python object parsed from JSON text.

Returns:

Data.

Return type:

Any

extract_first(element: Any, default: Any = sentinel) Any

Extract the first data or subelement from extract method call result.

Parameters:
  • element (Any) – The target data node element.

  • default (Any, optional) – Default value when not found. Default: data_extractor.utils.sentinel.

Returns:

Data or subelement.

Return type:

Any

Raises:

ExtractError – Thrown by extractor extracting wrong data.

class data_extractor.json.JSONPathRWExtractor(*args: Any, **kwargs: Any)

Bases: JSONExtractor

Use JSONPath expression implementated by jsonpath-rw package for JSON data extracting.

Before extracting, should parse the JSON text into Python object.

Parameters:

expr (str) – JSONPath Expression.

extract(element: Any) Any

Extract data from JSON data.

Parameters:

element (Any) – Python object parsed from JSON text.

Returns:

Data.

Return type:

Any

extract_first(element: Any, default: Any = sentinel) Any

Extract the first data or subelement from extract method call result.

Parameters:
  • element (Any) – The target data node element.

  • default (Any, optional) – Default value when not found. Default: data_extractor.utils.sentinel.

Returns:

Data or subelement.

Return type:

Any

Raises:

ExtractError – Thrown by extractor extracting wrong data.

data_extractor.json.json_extractor_backend

alias of JSONPathExtractor