Python Glossary English

Python 3.14+compression.zstdфункция

compression.zstd.train_dict()

словари

Обучает словарь zstd на образцах типичных данных. Словарь резко улучшает сжатие множества мелких похожих записей.

Синтаксис

compression.zstd.train_dict(samples, dict_size) -> ZstdDict

Словарь окупается на мелких объектах (сотни байт — единицы КиБ): короткий JSON без словаря может даже вырасти после сжатия. Образцов нужно много — при паре образцов обучение падает ZstdError. Словарь становится частью формата: его надо хранить и передавать в decompress тем же zstd_dict, иначе данные не восстановить.

Примеры

# Python 3.14+
from compression import zstd  # → ? нужна сборка CPython с libzstd
samples = [f'{{"id": {i}, "name": "user{i}", "active": true}}'.encode() for i in range(200)]
zd = zstd.train_dict(samples, 1024)
one = samples[5]
print(len(zstd.compress(one)) > len(one))  # → True — без словаря стало больше
packed = zstd.compress(one, zstd_dict=zd)
print(len(packed) < len(one))  # → True
try:
    zstd.decompress(packed)
except zstd.ZstdError as e:
    print(e)  # → Unable to decompress Zstandard data: Dictionary mismatch

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности