удалить поле из вывода ответа в python - PullRequest
0 голосов
/ 05 ноября 2018

Может кто-нибудь подсказать, как удалить поле EventTime снизу вывода в python3, используя boto3.

'Events': [{
    'EventId': '4a9f4c8e-3394-41df-xxxx-7e725b7c728e',
    'EventName': 'ConsoleLogin',
    'ReadOnly': 'false',
    'EventTime': datetime.datetime(2018, 11, 5, 9, 49, 19, tzinfo = tzlocal()),
    'EventSource': 'signin.amazonaws.com',
    'Username': 'tests.sde',
    'Resources': [],
    'CloudTrailEvent': '{"eventVersion":"1.05","userIdentity":

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Это простое удаление элемента python из словаря. В вашем случае у вас есть список словарей. Если вы хотите удалить EventTime во всех словарях, которые есть в 'Events':[{}]. Вы можете использовать следующий код:

for event in response['Events']:
    try:
        del event['EventTime']
    except KeyError:
        print("Key 'EventTime' is not found")

Приведенный выше код удалит EventTime и выдаст ошибку, если не найдет элемент с ключом EventTime. В вашем случае, я думаю, все словари будут иметь его.

0 голосов
/ 05 ноября 2018

Синтаксис ответа выше - это просто стандартный словарь Python. Единственное осложнение синтаксиса ответа boto3 заключается в том, что ключ Events на самом деле является словарём, заключенным в список, но вы все равно можете использовать pop() для удаления ключа EventTime из этого словаря. В приведенном ниже примере я назвал вывод response.

response['Events'][0].pop('EventTime', None)
print(response)

pop() удаляет ключи на месте, поэтому после запуска кода и просмотра response ключ EventTime будет удален.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...