Ich habe zwei Liste der dicts sagen:in einem
rds_detail:
[ { 'rds_name': u'emsclassicldap', 'rds_type': u'db.m3.medium'},
{ 'rds_name': u'fra01-devops-KPX', 'rds_type': u'db.t2.medium'},
{ 'rds_name': u'prodreplica', 'rds_type': u'db.t2.medium'}
]
cloudwatch_detail:
[ { 'alarm_name': u'emsclassicldap_db_connections', 'alarm_threshold': 380.0},
{ 'alarm_name': u'fra01-devops-KPX_db_connection',
'alarm_threshold': 266.0},
{ 'alarm_name': u'prodreplica_db_connections',
'alarm_threshold': 266.0},
]
Die alarm_name
hat tatsächlich rds_name
als Teilkette; I müssen diese beiden Listen in einer solchen Situation kombinieren, damit das Endergebnis wie folgt aussieht:
[
{ 'rds_name': u'emsclassicldap', 'rds_type': u'db.m3.medium','alarm_name': u'classicldap_db_connections', 'alarm_threshold': 380.0}
.
.
So on
.
.
]
Ich schreibe eine einfache def zu kombinieren:
def combine_rds_cloudwatch(rds_detail,cloudwatch_detail):
print rds_detail,cloudwatch_detail
for rds in rds_detail:
for alarm in cloudwatch_detail:
if ????????????
nicht sicher, wie dies zu tun
ich über die Liste iterieren würde, den Wert von 'rds_name' erhalten und verwenden' in list2 [index] [ 'alarm_name '] 'mache ein dict update und füge es in eine neue Liste ein – Bobby
Mit dem' in'-Operator kannst du nach Teilstrings suchen, z 'if rds ['rds_name'] in Alarm ['Alarm_Name']:' für diese if-Anweisung. Sie möchten eine neue Liste von Wörterbüchern zurückgeben. Versuchen Sie, mit 'dict.items()' zu experimentieren, wodurch Sie die Einträge eines Wörterbuchs iterieren können. – Archimaredes