辞書のリストが2つある場合、新しいリストの辞書に元のリストのキーと値のペアの組み合わせがある辞書の新しいリストを作成します。Pythonで辞書の2つのリストに加わる
私はSQLで左結合のようなものを想像しています。ここで
は私の二つのリストの例である:DictList1
、
DictList1 = [{workbookname: workbook1, groupid: id1, capabilityname: capability1},
{workbookname: workbook1, groupid: id1, capabilityname: capability2}
, ...]
DictList2 = [{groupid: id1, groupname: name1}
, {groupid: id2, groupname, name2}
, ...]
NewList = [{workbookname: workbook1, groupname: name1, capabilityname: capability1}
, {workbookname: workbook1, groupname: name1, capabilityname: capability2}
, ...]
ので
- 私は
groupid
上の一致を検出するまでDictList2
を検索します。 - 次に、その辞書にグループ名のキーと値のペアを追加します。
- に保存します。
これはPythonで可能なことですか?
combined = [dict(by_group.get(d['groupid'], {}), **d) for d in DictList1]
: by_group = {}
for d in DictList2:
by_group[d['groupid']] = d
は今、あなたは第二のリストからの出力を生成することができます
:リストインデックスは(私のメインで)最後の行にstrを、整数であってはならないこと。 –
@JeremyReal: 'd'はリストオブジェクトであり、辞書ではないことを示しています。 'DictList1'に辞書しかないのは確実ですか? –
内側のリストを除いて最も外側のリストが空である[[{}]]のような辞書を持つ2つのリストがあると思います。私はどのようにそれをしたのか分かりませんが、それはおそらく問題です。私はそれをチェックします。ありがとう! –