json – Extractors for JSON data extracting.

class data_extractor.json.JSONExtractor(expr: str)

Bases: data_extractor.core.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(expr: str)

Bases: data_extractor.json.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(expr: str)

Bases: data_extractor.json.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(expr: str)

Bases: data_extractor.json.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 data_extractor.json.JSONPathExtractor