【问题标题】:how to join 2 dictionaries on same keys in python如何在python中的相同键上加入2个字典
【发布时间】:2021-02-24 16:22:24
【问题描述】:

我有 2 张桌子:

form(id, label, name) 

subform(subid, formID (f.k) , subname)

在 python 中,我正在尝试创建这些表的连接字典,我需要一个嵌套字典,对于每个 id,我可以有另一个子表单字典(带有相关键),格式如下:

{form:{"id":"1" , "subid":"11", subname:"test"}, label:"testlabel" , name:"testname"}

请问您知道在 python 中制作这种字典的任何解决方案吗?

【问题讨论】:

  • 您是否使用模型或已获取数据的字典?如果可以这样做,使用模型/查询集方法已经更容易了。

标签: python django dictionary nosql


【解决方案1】:

如果您使用标签中指定的 django,并且您说的是 tables,那么您应该能够进行内部连接:

SubForm.objects.all().select_related("form")

您想要的结果的问题是您描述的模型之间的关系是一个表单到多个子表单的关系。因此,如果您希望对您的表单查询集进行内部连接,那么您必须这样做:

Form.objects.all().prefetch_related("subform_set")

其中subform_set 将是每个表单的子表单数组。

【讨论】:

  • 感谢您的回答,我使用的是 django,但我不会为这些表使用模型,我使用 sql 查询直接从数据库中获取此信息
  • 那为什么还要使用 django?
【解决方案2】:

我找到了解决方案,谁也需要我的解决方案:

form = {},
subform = {}

For f in formTable:
    form[‘subform_id’] = subform
    form[‘label’] = f.label
    form[‘name’] = f.name

    For item in subTable:
        subform['form_id'] = f.id
        subform['subid'] = item.id
        sub['subname'] = item.name

【讨论】:

    猜你喜欢
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多