Retour au classement

mahmoud/glom

Pythonglom.readthedocs.io

☄️ Python's nested data operator (and CLI), for all your declarative restructuring needs. Got data? Glom it! ☄️

declarativedatarecursionpythonutilitiesclinested-structuresdata-transformationapisdictionaries
Croissance des étoiles
Étoiles
2.2k
Forks
77
Croissance hebdomadaire
Issues
96
5001k1.5k2k
janv. 2023mars 2024mai 2025juil. 2026
ArtefactsPyPIpip install glom
README

glom

Restructuring data, the Python way

Real applications have real data, and real data nests. Objects inside of objects inside of lists of objects.

glom is a powerful way to handle real-world data, featuring:

  • Path-based access for nested data structures
  • Readable, meaningful error messages
  • Declarative data transformation, using lightweight, Pythonic specifications
  • Built-in data exploration and debugging features

All of that and more, available as a fully-documented, pure-Python package, tested on Python 3.7-3.14, as well as PyPy3. Installation is as easy as:

  pip install glom

And when you install glom, you also get the glom command-line interface, letting you experiment at the console, but never limiting you to shell scripts:

Usage: glom [FLAGS] [spec [target]]

Command-line interface to the glom library, providing nested data access and data
restructuring with the power of Python.

Flags:

  --help / -h                     show this help message and exit
  --target-file TARGET_FILE       path to target data source (optional)
  --target-format TARGET_FORMAT
                                  format of the source data (json, python, toml,
                                  or yaml) (defaults to 'json')
  --spec-file SPEC_FILE           path to glom spec definition (optional)
  --spec-format SPEC_FORMAT       format of the glom spec definition (json, python,
                                    python-full) (defaults to 'python')
  --indent INDENT                 number of spaces to indent the result, 0 to disable
                                    pretty-printing (defaults to 2)
  --debug                         interactively debug any errors that come up
  --inspect                       interactively explore the data

Anything you can do at the command line readily translates to Python code, so you've always got a path forward when complexity starts to ramp up.

Examples

Without glom

>>> data = {'a': {'b': {'c': 'd'}}}
>>> data['a']['b']['c']
'd'
>>> data2 = {'a': {'b': None}}
>>> data2['a']['b']['c']
Traceback (most recent call last):
...
TypeError: 'NoneType' object is not subscriptable

With glom

>>> glom(data, 'a.b.c')
'd'
>>> glom(data2, 'a.b.c')
Traceback (most recent call last):
...
PathAccessError: could not access 'c', index 2 in path Path('a', 'b', 'c'), got error: ...

Learn more

If all this seems interesting, continue exploring glom below:

All of the links above are overflowing with examples, but should you find anything about the docs, or glom itself, lacking, please submit an issue!

In the meantime, just remember: When you've got nested data, glom it! ☄️

Dépôts similaires
react/react

The library for web and native user interfaces.

JavaScriptnpmMIT Licensejavascriptreact
react.dev
246.7k51.3k
facebook/react

The library for web and native user interfaces.

JavaScriptnpmMIT Licensejavascriptreact
react.dev
233k47.8k
solidjs/solid

A declarative, efficient, and flexible JavaScript library for building user interfaces.

TypeScriptnpmMIT Licensejavascriptperformance
solidjs.com
35.8k1.1k
plotly/plotly.py

The interactive graphing library for Python :sparkles:

PythonPyPIMIT Licensepythond3
plotly.com/python/
18.7k2.8k
BuilderIO/mitosis

Write components once, run everywhere. Compiles to React, Vue, Qwik, Solid, Angular, Svelte, and more.

TypeScriptnpmMIT Licensejsxreact
mitosis.builder.io
13.9k634
open-policy-agent/opa

Open Policy Agent (OPA) is an open source, general-purpose policy engine.

GoGo ModulesApache License 2.0opapolicy
openpolicyagent.org
12k1.6k
flyteorg/flyte

Dynamic, resilient AI orchestration. Coordinate data, models, and compute as you build AI workflows.

GoGo ModulesApache License 2.0flytemachine-learning
flyte.org
7.1k849
lxn/walk

A Windows GUI toolkit for the Go Programming Language

GoGo ModulesOthergogui
7.1k902
imba/imba

🐤 The friendly full-stack language

JavaScriptnpmMIT Licenseprogramming-languagejavascript
imba.io
6.5k183
standardagents/arrow-js

The first UI framework for the agentic era — tiny, performant, with WASM sandboxes for safe code execution.

TypeScriptnpmMIT Licensedeclarativereactive
arrow-js.com
3.7k87
Tresjs/tres

Declarative ThreeJS using Vue Components

VueMIT Licensecomposabledeclarative
tresjs.org
3.6k191
justin-schroeder/arrow-js

Reactivity without the framework

TypeScriptnpmMIT Licensedeclarativereactive
arrow-js.com
2.5k50