第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據(jù) region 和 eventTypeCode 獲取最近的事件

根據(jù) region 和 eventTypeCode 獲取最近的事件

www說 2022-07-12 10:08:11
我有以下 json 數(shù)據(jù),如何通過在 python 中對startTime進(jìn)行排序來獲取基于region和eventTypeCode以及最新事件的最新記錄?需要忽略eventTypeCode的重復(fù)項(xiàng)。有什么辦法可以在 python 中比較這個startTime,找出最近的記錄并只返回那個記錄?樣本數(shù)據(jù):   "ResponseMetadata": {      "HTTPHeaders": {         "content-length": "1478",         "content-type": "application/x-amz-json-1.1",         "date": "Mon, 27 Jan 2020 21:24:47 GMT",         "x-amzn-requestid": "a84471fc-8bde-4404-854e-c1656884cac5"      },      "HTTPStatusCode": 200,      "RequestId": "a84471fc-8bde-4404-854e-c1656884cac5",      "RetryAttempts": 0   },   "events": [      {         "eventTypeCode": "AWS_RDS_SECURITY_NOTIFICATION",         "startTime": "2020-01-15 11:50:00-06:00",         "region": "us-east-1"      },      {         "eventTypeCode": "AWS_RDS_SECURITY_NOTIFICATION",         "startTime": "2019-11-26 02:59:00-06:00",         "region": "us-east-1"      },      {         "eventTypeCode": "AWS_TRUSTEDADVISOR_OPERATIONAL_NOTIFICATION",         "startTime": "2020-01-27 12:36:00-06:00",         "region": "us-east-1"      },      {         "eventTypeCode": "AWS_TRUSTEDADVISOR_OPERATIONAL_NOTIFICATION",         "startTime": "2019-11-18 16:04:00-06:00",         "region": "us-east-1"      },      {         "eventTypeCode": "AWS_MARKETPLACE_OPERATIONAL_NOTIFICATION",         "startTime": "2019-11-11 11:30:00-06:00",         "region": "us-east-1"      },      {         "eventTypeCode": "AWS_RDS_SECURITY_NOTIFICATION",         "startTime": "2020-01-10 11:55:00-06:00",         "region": "us-west-1"      },      {         "eventTypeCode": "AWS_RDS_SECURITY_NOTIFICATION",         "startTime": "2019-11-13 02:15:00-06:00",         "region": "us-west-1"      },   ]}預(yù)期輸出:   "eventTypeCode": "AWS_RDS_SECURITY_NOTIFICATION",   "startTime": "2020-01-15 11:50:00-06:00",   "region": "us-east-1"},{   "eventTypeCode": "AWS_RDS_SECURITY_NOTIFICATION",   "startTime": "2020-01-10 11:55:00-06:00",   "region": "us-west-1"}
查看完整描述

1 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個贊

import datetime as dt

from dateutil.parser import parse

import json


def events_equal(event1, event2):

    return event1["eventTypeCode"] == event2["eventTypeCode"] and event1["region"] == event2["region"]


json_data = ### Insert your json data string here ###



parsed_json_data = json.loads(json_data)

filtered_events = []


for parsed_event in parsed_json_data["events"]:

    already_present = False

    ## for every event, check if we've already added it to the filtered list

    for filtered_event_index in range(len(filtered_events)):

        if events_equal(parsed_event, filtered_events[filtered_event_index]):

            already_present = True

            ## Convert startTime strings to datetime object for comparison

            parsed_event_date = parse(parsed_event["startTime"])

            filtered_event_date = parse(filtered_events[filtered_event_index]["startTime"])

            ## Use parse if on an older version of python, otherwise

            ## strptime can handle the conversion

            ## parsed_event_date = dt.datetime.strptime(parsed_event["startTime"], '%Y-%m-%d %H:%M:%S%z')

            ## filtered_event_date = dt.datetime.strptime(filtered_events[filtered_event_index]["startTime"], '%Y-%m-%d %H:%M:%S%z')

            if parsed_event_date > filtered_event_date:

                ## if parsed event date is newer, replace the one already present

                filtered_events[filtered_event_index] = parsed_event

    if not already_present:

        filtered_events.append(parsed_event)


## build the new json object

filtered_events = {"events": filtered_events}

print(json.dumps(filtered_events, indent=4))

輸出:


{

    "events": [

        {

            "eventTypeCode": "AWS_RDS_SECURITY_NOTIFICATION",

            "startTime": "2020-01-15 11:50:00-06:00",

            "region": "us-east-1"

        },

        {

            "eventTypeCode": "AWS_TRUSTEDADVISOR_OPERATIONAL_NOTIFICATION",

            "startTime": "2020-01-27 12:36:00-06:00",

            "region": "us-east-1"

        },

        {

            "eventTypeCode": "AWS_MARKETPLACE_OPERATIONAL_NOTIFICATION",

            "startTime": "2019-11-11 11:30:00-06:00",

            "region": "us-east-1"

        },

        {

            "eventTypeCode": "AWS_RDS_SECURITY_NOTIFICATION",

            "startTime": "2020-01-10 11:55:00-06:00",

            "region": "us-west-1"

        }

    ]

}

這僅適用于從 python 3.7 開始,早期版本的 strptime 將僅以-0600and not的形式解析 UTC 偏移量-06:00。


編輯:我用 dateutil 解析器替換了 strptime 調(diào)用,它將與早期版本的 python 一起使用。


查看完整回答
反對 回復(fù) 2022-07-12
  • 1 回答
  • 0 關(guān)注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號