我正在努力编写一本嵌套非常多的词典。只有当字典中有“name”:“bingo”时,我才需要获取字典的“main_id”。
example_dict = [{'main_id': 10000,
'example_field': {'group': {'count': 3, 'results': [{'id': 1, 'name': 'AAA'}, {'id': 2, 'name': 'BBB'},
{'id': 3, 'name': 'CCC'}]}}},
{'main_id': 20000,
'example_field': {
'group': {'count': 3, 'results': [{'id': 1, 'name': 'AAA'}, {'id': 2, 'name': 'BBB'},
{'id': 3, 'name': 'bingo'}]}}}
]
我有解决办法,但在我看来是相当丑陋的。
for elem in example_dict:
result = ([elem for elem in elem['example_field']['group']['results'] if elem.get('name') == 'bingo'])
if result:
main_id = elem['main_id']
print(main_id)
我想知道:
我猜您的dicts具有规则的结构-在这种情况下,您可以使用一些库将其解析到类中,pydantic可能是一个不错的选择:
from typing import List
from pydantic.main import BaseModel
class Field(BaseModel):
id: int
name: str
class Main(BaseModel):
fields: List[Field]
d = {"fields": [{"id": 1, "name": "a"}, {"id": 2, "name": "b"}]}
c = Main(**d)
print(c)
这只是一个示例,但可以有更多嵌套类。使用它,您只需在c.fields中编写[f代表f,如果f.name==“bingo”]
问题内容: 我在理解Python3中的嵌套字典理解时遇到了麻烦。从下面的示例中得到的结果输出的是正确的结构,没有错误,但仅包含一个内部键:值对。我还没有找到像这样的嵌套字典理解的例子。谷歌搜索“嵌套词典理解python”显示了遗留示例,非嵌套理解或使用其他方法解决的答案。我可能使用了错误的语法。 例: 此示例应返回原始字典,但内部值由修改。 outside_dict词典的结构以及结果: 问题答案:
问题内容: 假设我有一个像这样的领域模型: 现在,我可以像这样创建一个教师比较器: 但是,我如何像这样在嵌套字段上比较Lecture? 我无法在模型上添加方法。 问题答案: 您不能嵌套方法引用。您可以改用lambda表达式: 无需反向顺序,它就不再那么冗长了: 注意:在某些情况下,您需要明确声明泛型类型。对于 例如,下面的代码不会没有工作,之前在Java中8。 较新的Java版本具有更好的自动类型
问题内容: 我有一个嵌套的数据结构。我想使用模块读取其键和值。数据结构像下面这样。 我试图使用波纹管方式读取字典中的键,但出现错误。 码 错误 所以任何人都可以解释错误的原因以及如何遍历字典。 问题答案: 作为请求的输出,代码如下所示 代替您也可以使用,但是效率更高并且返回迭代器。 希望这可以帮助 :)
我的数据如下所示: 内部数组的长度始终相同。键1、键2、键3也始终相同。 我想将其转换为熊猫DataFrame,其中outer_key1,outer_key2,...是索引,key1,key2,key3是列。 编辑: 数据中存在一个问题,我认为这就是给定解决方案不起作用的原因。在少数情况下,内部数组中有三个s,而不是三个字典。这样地:
问题内容: 我只想获取嵌套字段,但不能,因为它不是叶字段。 我在下面尝试过,但是无法匹配嵌套对象中的每个ID和名称。 结果: 这是我的预期结果: 问题答案: 如果您没有某个查询应以某种方式匹配嵌套字段,则可以这样进行: 如果您还有一个查询,并且想返回 匹配 的 嵌套文档,则 可以这样操作(使用):
问题内容: 我在ng-table中有一张发票清单,希望能够对嵌套属性进行过滤。json看起来像这样; 我的看法是这样的 我想让过滤工作于client.fullname。如何过滤嵌套属性? 更新资料 我找到了一种解决方法,将嵌套字段放入非嵌套的JSON元素中,在上面的示例中,我创建了一个JSON [‘client_name’]元素并将其分配给rails模型中的client.fullname。然后,筛