DeepDiff 4.0.8 documentation!

DeepSearch Reference

class deepdiff.search.grep(item, **kwargs)

Grep

grep is a new interface for Deep Search. It takes exactly the same arguments. And it works just like grep in shell!

Examples

Importing
>>> from deepdiff import grep
>>> from pprint import pprint
Search in list for string
>>> obj = ["long somewhere", "string", 0, "somewhere great!"]
>>> item = "somewhere"
>>> ds = obj | grep(item)
>>> print(ds)
{'matched_values': {'root[3]', 'root[0]'}
Search in nested data for string
>>> obj = ["something somewhere", {"long": "somewhere", "string": 2, 0: 0, "somewhere": "around"}]
>>> item = "somewhere"
>>> ds = obj | grep(item, verbose_level=2)
>>> pprint(ds, indent=2)
{ 'matched_paths': {"root[1]['somewhere']": 'around'},
  'matched_values': { 'root[0]': 'something somewhere',
                      "root[1]['long']": 'somewhere'}}
class deepdiff.search.DeepSearch(obj, item, exclude_paths={}, exclude_regex_paths={}, exclude_types={}, verbose_level=1, case_sensitive=False, match_string=False, **kwargs)

DeepSearch

Deep Search inside objects to find the item matching your criteria.

Parameters

obj : The object to search within

item : The item to search for

verbose_level : int >= 0, default = 1.
Verbose level one shows the paths of found items. Verbose level 2 shows the path and value of the found items.
exclude_paths: list, default = None.
List of paths to exclude from the report.
exclude_types: list, default = None.
List of object types to exclude from the report.

case_sensitive: Boolean, default = False

match_string: Boolean, default = False
If True, the value of the object or its children have to exactly match the item. If False, the value of the item can be a part of the value of the object or its children

Returns

A DeepSearch object that has the matched paths and matched values.

Supported data types

int, string, unicode, dictionary, list, tuple, set, frozenset, OrderedDict, NamedTuple and custom objects!

Examples

Importing
>>> from deepdiff import DeepSearch
>>> from pprint import pprint
Search in list for string
>>> obj = ["long somewhere", "string", 0, "somewhere great!"]
>>> item = "somewhere"
>>> ds = DeepSearch(obj, item, verbose_level=2)
>>> print(ds)
{'matched_values': {'root[3]': 'somewhere great!', 'root[0]': 'long somewhere'}}
Search in nested data for string
>>> obj = ["something somewhere", {"long": "somewhere", "string": 2, 0: 0, "somewhere": "around"}]
>>> item = "somewhere"
>>> ds = DeepSearch(obj, item, verbose_level=2)
>>> pprint(ds, indent=2)
{ 'matched_paths': {"root[1]['somewhere']": 'around'},
  'matched_values': { 'root[0]': 'something somewhere',
                      "root[1]['long']": 'somewhere'}}

Back to DeepDiff 4.0.8 documentation!