如何从以下位置获取值 - 项目映射[字符串][][]*int64“位置名称:

我需要从 Go SDK(https://docs.aws.amazon.com/sdk-for-go/api/service/apigateway/#Usage)中获取以下数据中的值。我使用的是高浪 1.17.


下面是我的 lambda 函数返回的数据。


Decoded Data:  { map[]}

All the usage:  map[4wxq8mcov8:[[0xc000353848 0xc000353870]]]

{

EndDate: "2021-08-31",

Items: {

4wxq8mcov8: [[12,975]]

},

StartDate: "2021-08-31",

UsagePlanId: "w4wuvt"

}

我只想要来自 Items: {api_key: [[这个数字,还有这个数字]]},我只想要数组中的两个数字。


示例返回数据,我想要 12 和 975 -Items: { 4wxq8mcov8: [[12,975]] }


我如何获取数据,然后将两个数字除以得到百分比?获得百分比后,我将使用该数字与使用计划进行比较,以查看是否达到阈值。如果阈值是<=除号,我将通过SNS向slack或电子邮件发送消息。


现在,我的重点是从项目映射中获取数字。提前感谢您。


倚天杖
浏览 142回答 1
1回答

犯罪嫌疑人X

要获得这两个数字,您必须从地图中获取它们。如果你总是知道键,并且你知道数组中只有一个元素,你可以这样做u := getUsagePlanInfo(srv)items := u.Itemsquota := *items["4wxq8mcov8"][0][0]remaining := *items["4wxq8mcov8"][0][1]为了更安全,你应该这样做if item, ok := items["4wxq8mcov8"]; ok && len(item) > 0 && len(item[0]) > 1 {&nbsp; quota := *item[0][0]&nbsp; remaining := *item[0][1]&nbsp; fmt.Printf("%d, %d\n", quota, remaining)}如果您有多个键,或者您不知道该键,则必须迭代映射并获取每个键的值
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go