问题标签 [glom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1300 浏览

python - 使用 Python 模块 Glom,将不规则的嵌套列表提取为扁平的字典列表

Glom 使访问复杂的嵌套数据结构变得更加容易。 https://github.com/mahmoud/glom

给定以下玩具数据结构:

我试图将数据结构中的所有地址字段提取到一个扁平的字典列表中。

上述规范提供:

期望的结果是:

什么 Gromspec 会产生预期的结果?

0 投票
1 回答
717 浏览

python - 通过使用 Python Glom 过滤其他属性的列表来获取嵌套属性的值

我有一个这样的数据对象:

使用glom,我想得到等于的项目x的值。idnameb

到目前为止,我有这个:

返回:

我不知道使用什么规范(用glom说法)来提取返回列表中的唯一元素,然后是id.

我可以调用 glom 两次:

但我认为应该有一种方法可以在一次通话中做到这一点。关于如何实现这一目标的任何想法?

0 投票
1 回答
275 浏览

python - 有没有办法使用glom库将字典列表合并到单个字典中?

我正在使用glom项目。

有没有办法转换[{"id": 1, "name": "foo"}, {"id": 2, "name": "bar"}]{1: "foo", 2: "bar"}?

0 投票
1 回答
391 浏览

python - 使用glom将字典列表的字段提取到新字典中

我有以下高度简化的结构

我希望能够构建,使用glom,形式的新字典{<id>: <counts[pos]>},例如pos = 2

或者一个元组列表/元组

使用 adict comprehension很容易,但数据结构更复杂,我想动态指定要提取的内容。前面的示例将是我想要实现的最简单的事情。

过了一会儿,我设法解决了它如下

但这需要调用dict. 跳过字典间接的轻微变化将是

现在,我可以将调用的函数用于调用merge返回的值glom

我对此很满意,但是有没有更好的方法来做到这一点?更好的意思是构建一个可调用的清洁规范?最终,我希望能够在运行时以用户友好的方式定义字典的值,即v["counts"][pos].

对这个想法的一个改进是使用一个可调用的函数来调用内部字典的值

这样,可以从外部控制从每个元素中提取的内容。

0 投票
2 回答
308 浏览

python - 如何根据列表索引过滤glom中的列表?

我希望能够只过滤掉 1 个,或者可能是所有小于某个索引的列表项,但 glom 文档的片段部分中的过滤器片段没有告诉我如何做到这一点。

示例(仅保留列表中的前 2 个项目):

0 投票
1 回答
387 浏览

python - 字典列表中字典列表的Glom规范

我目前正在使用 glom 来解析 JSON API 响应,该响应除其他外返回一个字典列表,其中包含一个字典列表。我遇到的问题是让 glom 访问正确的字典条目。

示例 JSON:

我试图获取的信息在“legs”中,其中“legType”==“Dial”或“EnterIVR”。我需要来自“拨号”腿的“号码”和来自“EnterIVR”腿的“菜单名称”。例如,我可以得到它来列出所有不同的legTypes,但不是专门来自这些的数据。

这是我目前所在的位置:

现在我可以让他们用 Coalesce 退回到“无”,但这不是我想要的。

关于我应该如何指定这个以从“数字”和“客户”的这两条腿中获取信息的任何建议?

0 投票
1 回答
440 浏览

python - 如何使 glom 与类似字典的对象一起工作

Glom(https://glom.readthedocs.io/en/latest/)除其他外,用于

嵌套结构的基于路径的访问

但是你如何使它适用于字典之外的嵌套结构呢?

考虑以下类(为简单起见,故意不是实际collection.abc.Mapping的:

这有效:

但这不会:

我得到错误: PathAccessError: could not access 'a', part 0 of Path('a', 'b', 'c'), got error: AttributeError("'MyMap' object has no attribute 'a'")

更具体地说,如何指定:

  • 什么是节点(即可以进一步修饰的对象)
  • 键迭代器(如何将路径拆分为键)
  • item getter(如何从键中检索数据)

如果它有帮助,这是我正在寻找 glom 来满足的那种功能:

这个功能没有所有的花里胡哨,但允许我做:

或者对于使用所有参数的极端示例:

0 投票
1 回答
257 浏览

python - Glom:如何包含特定于字段的默认值

如何在 glom 的输出中包含特定于字段的默认值?

例如,我可以像这样包含“常量”:

但是,只有在输入中没有“B”时,我如何指定“B”应该指向 42?走出glom,我可以这样做:

当然,有一种更糟糕的方法可以做到这一点。

0 投票
1 回答
153 浏览

python - 在glom中切片?

简而言之: 我怎样才能切入glom?也就是说,能够指定我想从多个索引(例如y = x[(2, 5, 11)])中提取,而不仅仅是一个索引(例如y = x[2])。

简单的例子:假设我有这个数据:

要提取“_result”列表的命名 zip(*),我可以这样做:

我会得到我想要的:

但我希望能够做类似的事情......

或者

一个更高级的愿望……

我可以想象这样的语法糖能够指定路径

可以派上用场。甚至(并且可能更安全)如果它是通过明确的 glom.Path 定义,例如

在我的(可能不是最佳选择)迷你语言中,{'foo', 'bar'}我们提取这两个键的值的方法。

0 投票
1 回答
309 浏览

python-3.x - 在 Python 中使用 glom 库:将列表结果转换为带有 Python 函数生成的键的字典

我正在使用 Python 库glom从包含列表的字典中提取数据。

这个问题是关于不了解glom如何与用户定义的函数一起工作以及如何将数据从列表移动到glom中的字典。

例如,我正在尝试将数据直接转换为字典。

想要的结果看起来像这样

例如,我使用glom之外的理解来获得想要的结果,因为 glom 返回一个列表。

我正在寻找一种通过 glom 规范直接获得相同结果的方法。