polars.Expr.str.json_path_match#

Expr.str.json_path_match(json_path: str) Expr[source]#

Extract the first match of JSON string with the provided JSONPath expression.

Throws errors if invalid JSON strings are encountered. All return values will be cast to Utf8 regardless of the original value.

Documentation on JSONPath standard can be found here.

Parameters:
json_path

A valid JSON path query string.

Returns:
Expr

Expression of data type Utf8. Contains null values if original value is null or the json_path returns nothing.

Examples

>>> df = pl.DataFrame(
...     {"json_val": ['{"a":"1"}', None, '{"a":2}', '{"a":2.1}', '{"a":true}']}
... )
>>> df.with_columns(matched=pl.col("json_val").str.json_path_match("$.a"))
shape: (5, 2)
┌────────────┬─────────┐
│ json_val   ┆ matched │
│ ---        ┆ ---     │
│ str        ┆ str     │
╞════════════╪═════════╡
│ {"a":"1"}  ┆ 1       │
│ null       ┆ null    │
│ {"a":2}    ┆ 2       │
│ {"a":2.1}  ┆ 2.1     │
│ {"a":true} ┆ true    │
└────────────┴─────────┘