Skip to main content

It is a lightweight Python library that extends the built-in list for convenient work with arrays of dictionaries.

Project description

DictList2

DictList2 — это лёгкая Python-библиотека, расширяющая стандартный список для удобной работы с массивами словарей.

Возможности

  • 📦 unique() — исключает дубликаты по всем полям;
  • 🔢 sort() — сортировка по одному или нескольким ключам;
  • 🎯 distinct() — уникальные значения по выбранным полям;
  • 🔍 filter() — фильтрация по условиям;
  • 🔄 gen_filter() — группировка с возможностью сортировки;
  • 🔗 join() / left_join() — объединения списков по ключу;
  • 🧮 group_by() — группировка с подсчётом суммы;
  • 📊 aggregate() — универсальная агрегация: sum, count, avg, min, max.

Установка

pip install dictlist2

Пример использования

from dictlist2 import DictList2

data = DictList2([
    {"project": "A", "user": "Anna", "hours": 2},
    {"project": "A", "user": "Ivan", "hours": 3},
    {"project": "B", "user": "Anna", "hours": 4},
    {"project": "A", "user": "Anna", "hours": 1},
])

# Группировка с агрегацией
result = data.aggregate(
    group_columns="project",
    aggregations={"hours": ["sum", "avg"], "user": "count"}
)

for row in result:
    print(row)

Когда использовать DictList2?

  • Обработка данных из баз данных или API.
  • Построение отчётов без использования Pandas.
  • Быстрая фильтрация, группировка и агрегация словарей.

Совместимость

  • Python 3.10+
  • Без внешних зависимостей

Лицензия

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dictlist2-1.0.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dictlist2-1.0.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file dictlist2-1.0.0.tar.gz.

File metadata

  • Download URL: dictlist2-1.0.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for dictlist2-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1480aa79a58c1ca927a26ede0047817c03112a78f47d2f82820ee7d3ac4a52ee
MD5 93e0a2757be7d20ebbba4e5b8f0de87e
BLAKE2b-256 7ca12e683e709c56a2b32602928127bd8e5d404d24858166f6c2e36691de5671

See more details on using hashes here.

File details

Details for the file dictlist2-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dictlist2-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for dictlist2-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a076eb1842fb51f51ae9cee1175823ba1ed05c0052f30da9b9499922e9033ce
MD5 852b14b438ee343c908b0bcff4be7bf8
BLAKE2b-256 c3dfafc2d3797d8afb1dc1838932efe7300baaa1df66eea5eaa76a74d59ec43c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page