Other

项目介绍

mahmoud/glom 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 Other 许可证,目前获得 2.2k 个 Star、99 次 Fork。

仓库全名
mahmoud/glom
开源许可证
Other
Star 数
2.2k
Fork 数
99
未关闭 Issue
149

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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

glom 用什么语言开发?

主要使用 Python 编写,采用 Other 许可证,目前有 2.2k 个 Star。

glom 可以免费商用吗?

仓库标注的许可证为 Other,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 glom 的源码?

可以直接克隆仓库:git clone https://github.com/mahmoud/glom.git,默认分支为 master;安装与运行步骤见仓库 README。

glom 最近还在维护吗?

仓库最近一次更新为 9月8日,当前有 149 个未关闭 Issue;Star 数为 2.2k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

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

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
2389
价值分
1326
活跃状态
活跃

语言占比

Python

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! ☄️

评论

暂无评论