res = {'status': 'done', 'nextLogId': 'AQAAAXb', 'logs': [{'content': {'service': 't2pipeline', 'tags': ['tag1:value1', 'tag2:value2', 'tag3:value3'], 'timestamp': '2021-01-05T05:25:03.416Z', 'host': 'i-00e17b8e872ec7d05', 'attributes': {'caller': 'psignal/state_machine.go:451', 'ts': 1609824303.416246, 'level': 'warn'}, 'message': 'psignal: Ignoring scte35 segmentation_descriptor (type:Program Start eventID:0 refUTC:Jan 5 05:25:02.387626333): there is an active segment with the same event_id'}, 'id': 'AQAAAXb'}, {'content': {'service': 't2pipeline', 'tags': ['tag1:value1', 'tag2:value2', 'tag3:value3'], 'timestamp': '2021-01-05T05:25:03.416Z', 'host': 'i-00e17b8e872ec7d05', 'attributes': {'caller': 'psignal/state_machine.go:713', 't2': {'scte35': {'event_id': 0, 'event_ptr': '0xc009f32b40', 'seg_type_id': 16}}, 'ts': 1609824303.4161847, 'level': 'info'}, 'message': 'psignal: scte35 segdesc eventID:0 type:Program Start'}, 'id': 'AQAAAXb'}], 'requestId': 'OVZRd3hv'}
< /code>
Ich versuche, ein neues Wörterbuch mit bestimmten Schlüsselwerten zu erstellen, einschließlich Zeitstempel und Nachrichten. Ich mache das in einer Schleife, aber nur die letzte Iteration ist im Wörterbuch vorhanden. < /P>
new_dict = {}
for i in range(len(res['logs'])):
new_dict['timestamp'] = res['logs'][i]['content']['timestamp']
new_dict['message'] = res['logs'][i]['content']['message']
< /code>
Wenn ich außerhalb der Schleife drucke, sehe ich nur den letzten Eintrag < /p>
print(new_dict)
< /code>
Dies ist das Ergebnis
{'timestamp': '2021-01-05T05:25:03.416Z', 'message': 'psignal: scte35 segdesc eventID:0 type:Program Start'}
Wie mache ich es so, dass das neue Wörterbuch mit beiden Einträgen aktualisiert wird. Ich habe versucht dict.update () , aber ohne Erfolg.
Ich habe ein Wörterbuch mit mehreren Einträgen < /p> [code]res = {'status': 'done', 'nextLogId': 'AQAAAXb', 'logs': [{'content': {'service': 't2pipeline', 'tags': ['tag1:value1', 'tag2:value2', 'tag3:value3'], 'timestamp': '2021-01-05T05:25:03.416Z', 'host': 'i-00e17b8e872ec7d05', 'attributes': {'caller': 'psignal/state_machine.go:451', 'ts': 1609824303.416246, 'level': 'warn'}, 'message': 'psignal: Ignoring scte35 segmentation_descriptor (type:Program Start eventID:0 refUTC:Jan 5 05:25:02.387626333): there is an active segment with the same event_id'}, 'id': 'AQAAAXb'}, {'content': {'service': 't2pipeline', 'tags': ['tag1:value1', 'tag2:value2', 'tag3:value3'], 'timestamp': '2021-01-05T05:25:03.416Z', 'host': 'i-00e17b8e872ec7d05', 'attributes': {'caller': 'psignal/state_machine.go:713', 't2': {'scte35': {'event_id': 0, 'event_ptr': '0xc009f32b40', 'seg_type_id': 16}}, 'ts': 1609824303.4161847, 'level': 'info'}, 'message': 'psignal: scte35 segdesc eventID:0 type:Program Start'}, 'id': 'AQAAAXb'}], 'requestId': 'OVZRd3hv'} < /code> Ich versuche, ein neues Wörterbuch mit bestimmten Schlüsselwerten zu erstellen, einschließlich Zeitstempel und Nachrichten. Ich mache das in einer Schleife, aber nur die letzte Iteration ist im Wörterbuch vorhanden. < /P> new_dict = {} for i in range(len(res['logs'])): new_dict['timestamp'] = res['logs'][i]['content']['timestamp'] new_dict['message'] = res['logs'][i]['content']['message'] < /code> Wenn ich außerhalb der Schleife drucke, sehe ich nur den letzten Eintrag < /p> print(new_dict) < /code> Dies ist das Ergebnis {'timestamp': '2021-01-05T05:25:03.416Z', 'message': 'psignal: scte35 segdesc eventID:0 type:Program Start'}[/code] Wie mache ich es so, dass das neue Wörterbuch mit beiden Einträgen aktualisiert wird. Ich habe versucht dict.update () , aber ohne Erfolg.
Versuchen Sie, den besten Weg zu finden, um Code für das folgende Szenario zu schreiben. Sagen Sie, ich habe das folgende Wörterbuch -Objekt
Dictionary myDict = new Dictionary()
Ich habe eine Liste von Zeichenfolgen, die mit einem Trennzeichen aufgeteilt werden müssen und dann den zweiten Wert des Aufteils erhalten, um eine Karte von String -Arrays zu erstellen.
Hier ist...