# libtmux._internal.query_list.QueryList.get

- **Module:** libtmux._internal.query_list
- **Package:** libtmux
- **Language:** Python
- **Kind:** method
- **Source:** https://github.com/tmux-python/libtmux/blob/38e368c11117fb4aeb2f082d552cd4f210eae06a/src/libtmux/_internal/query_list.py#L552
- **Page:** https://libtmux.org/en/py/stable/reference/libtmux-_internal-query_list-querylist-get/

```
libtmux._internal.query_list.QueryList.get(
    self,
    matcher: Callable[[T], bool] | T | None = None,
    default: t.Any | None = no_arg,
    kwargs: t.Any,
) -> T | None
```

Retrieve exactly one object.

## Examples

```python
>>> from libtmux._internal.query_list import QueryList
>>> from libtmux import exc
>>> qs = QueryList([{"pane_id": "%0"}, {"pane_id": "%0"}, {"pane_id": "%1"}])
```

```python
>>> qs.get(pane_id="%1")
{'pane_id': '%1'}
```

A lookup that matches nothing says what it went looking for:

```python
>>> try:
...     qs.get(pane_id="%9")
... except exc.ObjectDoesNotExist as e:
...     print(e)
No objects found: pane_id='%9'
```

```python
>>> qs.get(pane_id="%9", default=None) is None
True
```

A lookup that matches several says how many, and for what:

```python
>>> try:
...     qs.get(pane_id="%0")
... except exc.MultipleObjectsReturned as e:
...     print(e)
Multiple objects returned (2): pane_id='%0'
```

## Type parameters

- [`T`](/en/py/stable/reference/libtmux-_internal-query_list-querylist/#libtmux._internal.query_list.QueryList.type-parameter.T), declared by [`QueryList<T>`](/en/py/stable/reference/libtmux-_internal-query_list-querylist/)

## Parameters

- `matcher` (`Callable[[T], bool] | T | None`): Same matcher :meth:`filter` takes.
- `default` (`t.Any | None`): Returned instead of raising when *nothing* matches.
- `kwargs` (`t.Any`)

## Returns

object
    The single match, or *default* when there is no match and one was
    given.

## Raises

- [`ObjectDoesNotExist`](/en/py/stable/reference/libtmux-exc-objectdoesnotexist/): When nothing matches and no *default* was passed.
- [`MultipleObjectsReturned`](/en/py/stable/reference/libtmux-exc-multipleobjectsreturned/): When more than one object matches. A *default* does not suppress
this: it stands in for an object that is absent, and an ambiguous
lookup is not an absent one.
