Skip to main content
Version: devel

common.jsonpath

TJsonPath

Jsonpath compiled or str

TAnyJsonPath

A single or multiple jsonpaths

delete_matches

def delete_matches(paths: TAnyJsonPath, data: DictStrAny) -> None

[view_source]

Remove all keys from data matching any of given json path(s). Filtering is done in place.

find_values

def find_values(path: TJsonPath, data: DictStrAny) -> List[Any]

[view_source]

Return a list of values found under the given json path

resolve_paths

def resolve_paths(paths: TAnyJsonPath, data: DictStrAny) -> List[str]

[view_source]

Return a list of paths resolved against data. The return value is a list of strings.

Example:

resolve_paths('$.a.items[*].b', {'a': {'items': [{'b': 2}, {'b': 3}]}})
# ['a.items.[0].b', 'a.items.[1].b']

is_simple_field_path

def is_simple_field_path(path: JSONPath) -> bool

[view_source]

Checks if the given path represents a simple single field name.

Example:

is_simple_field_path(compile_path('id'))

True

is_simple_field_path(compile_path('$.id'))

False

extract_simple_field_name

def extract_simple_field_name(path: Union[str, JSONPath]) -> Optional[str]

[view_source]

Extracts a simple field name from a JSONPath if it represents a single field access. Returns None if the path is complex (contains wildcards, array indices, or multiple fields).

Arguments:

  • path - A JSONPath object or string

Returns:

  • Optional[str] - The field name if path represents a simple field access, None otherwise

Example:

    extract_simple_field_name('name')

'name'

    extract_simple_field_name('"name"')

'name'

    extract_simple_field_name('"na$me"') # Escaped characters are preserved

'na$me'

    extract_simple_field_name('"na.me"') # Escaped characters are preserved

'na.me'

    extract_simple_field_name('$.name')  # Returns None
extract_simple_field_name('$.items[*].name') # Returns None
extract_simple_field_name('*') # Returns None

This demo works on codespaces. Codespaces is a development environment available for free to anyone with a Github account. You'll be asked to fork the demo repository and from there the README guides you with further steps.
The demo uses the Continue VSCode extension.

Off to codespaces!

DHelp

Ask a question

Welcome to "Codex Central", your next-gen help center, driven by OpenAI's GPT-4 model. It's more than just a forum or a FAQ hub – it's a dynamic knowledge base where coders can find AI-assisted solutions to their pressing problems. With GPT-4's powerful comprehension and predictive abilities, Codex Central provides instantaneous issue resolution, insightful debugging, and personalized guidance. Get your code running smoothly with the unparalleled support at Codex Central - coding help reimagined with AI prowess.