Я хочу сканировать таблицу AWS DynamoDB, а затем вытащить только определенное значение. Вот мой код:Как получить вложенные значения карты
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/dynamodb"
)
func main() {
svc := dynamodb.New(session.New(), &aws.Config{Region: aws.String("us-west-2")})
params := &dynamodb.ScanInput{
TableName: aws.String("my_Dynamo_table_name"),
Limit: aws.Int64(2),
}
resp, err := svc.Scan(params)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(resp)
}
и Выход:
{
Count: 2,
Items: [{
update_time: {
N: "1466495096"
},
create_time: {
N: "1465655549"
}
},{
update_time: {
N: "1466503947"
},
create_time: {
N: "1466503947"
}
}],
LastEvaluatedKey: {
Prim_key: {
S: "1234567890"
}
},
ScannedCount: 2
}
Теперь я хочу, чтобы получить значение update_time
для всех элементов вывода выше. Вот мои попытки:
for _, value := range resp.Items {
fmt.Println(value["create_time"]["N"])
}
и
for _, value := range resp.Items {
fmt.Println(value.create_time.N)
}
и
for _, value := range resp.Items {
fmt.Println(*value.create_time.N)
}
Все вышеперечисленные попытки ошибок с /var/tmp/dynamo.go:37: invalid operation:
ошибки. Я из фона perl/python и недавно начал изучать golang.
Как извлечь вложенные значения карты/массива в этом случае. Кроме того, любые ссылки на чтение будут очень полезны. Мой поиск в Google не выявил ничего значимого.
Я отредактировал 'for' петли немного. Спасибо за ввод. Я использовал точно такой же код в python/ruby, а 'resp' - стандартный словарь python/ruby hash. Таким образом, было легко получить значения. Я думал, что даже в пути, ответ - это карта, и поэтому я не мог заставить ее работать. И спасибо за ссылку doc. – slayedbylucifer