Python SDK: TextTools: текст, цены и числа
ctx.text() очищает уже полученные значения локально. Эти методы не делают сетевых запросов.
Примеры являются фрагментами тела def run(ctx):. Все методы SDK синхронны, await не нужен.
Методы
clean
ctx.text().clean(value) -> str
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
value |
Any |
Да | Значение по назначению метода; см. описание результата. |
Результат: str.
Убрать HTML-теги, повторяющиеся пробелы и пробелы по краям.
result = ctx.text().clean('<b>Product</b>')
money
ctx.text().money(value) -> float | None
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
value |
Any |
Да | Значение по назначению метода; см. описание результата. |
Результат: float | None.
Превратить строку с ценой в число, учитывая пробелы, запятую и символ валюты.
result = ctx.text().money('1 250,50 RUB')
digits
ctx.text().digits(value) -> str
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
value |
Any |
Да | Значение по назначению метода; см. описание результата. |
Результат: str.
Оставить только цифры.
result = ctx.text().digits('SKU 123')
between
ctx.text().between(subject, start, end) -> str | None
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
subject |
str |
Да | Строка, в которой выполняется поиск. |
start |
int | str |
Да | Начальная граница: число страницы либо начало искомого фрагмента. |
end |
int | str |
Да | Конечная граница: включительный номер страницы либо конец фрагмента. |
Результат: str | None.
Взять текст между первым вхождением start и последующим end.
result = ctx.text().between('Price 1250 RUB', 'Price ', ' RUB')
extract
ctx.text().extract(expression, subject, group=1) -> str | None
| Аргумент | Тип | Обязателен | Назначение |
|---|---|---|---|
expression |
str |
Да | Регулярное выражение Python. |
subject |
str |
Да | Строка, в которой выполняется поиск. |
group |
int |
Нет, default в сигнатуре | Номер группы регулярного выражения. |
Результат: str | None.
Взять одну группу первого совпадения регулярного выражения.
result = ctx.text().extract(r'(\d+)', 'Price 1250', 1)
Ошибки и контекст выполнения
Все вызовы синхронны. Неверный аргумент или формат данных может вызвать ValueError/TypeError; отказ платформы или недоступность сервиса вызывает RuntimeError. Отсутствие элемента/значения даёт None либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.