如何在DynamoDB UpdateItem中更新数组对象

Edit Issue: I get error 400 when trying to update my map[]interface field.

I'm stuck on updating my array object in DynamoDB when using UpdateItem, specifically on my array object (in this case Authors field).

&awserr.requestError{awsError:(*awserr.baseError)(0xc000204140), statusCode:400, requestID:"QU2MMAJVDRM0JHJEPOE93VJPSVVV4KQNSO5AEMVJF66Q9ASUAAJG", bytes:[]uint8(nil)}

I did not encounter any problems when using PutItem with the same struct. I'm not sure what I'm missing and the error AWS is giving out is not that clear for me.

Struct:

type Book struct {
    Id          int            `json:":id"`
    Title       string         `json:":title"`
    Photo       Photo          `json:":photo"`
    Authors     []Author       `json:":authors"`
}

type Author struct {
    Id          int            `json:":id"`
    Name        string         `json:":name"`
}

I already tried Update Code:

input := &dynamodb.UpdateItemInput{
        TableName:                 aws.String("books"),
        Key:                       key,
        UpdateExpression:          aws.String(updateExp),
        ExpressionAttributeValues: value,
    }

Update expression:

"SET title = :title, photo = :photo, authors = list_append(authors, :authors)"

I also already tried

authors = :authors

Since I plan on replacing the whole Authors value every time anyway, but I just can seem to get this work.

When I log my ExpressionAttributeValue it looks like this

ExpressionAttributeValues: {
        :authors: {
          L: [{
              M: {
                id: {
                  N: "1"
                },
                name: {
                  S: "Bob"
                }
              }
            },{
              M: {
                name: {
                  S: "Arthur"
                },
                id: {
                  N: "2"
                }
              }
            }]
        },
        :title: {
          S: "Jumanji"
        },
        :description: {
          S: "Jungle Book"
        },
        :photo: {
          M: {
            original: {
              S: "sample.jpg"
            }
          }
        }
      }

I have already tested removing the authors field update (coded in such a way that UpdateExpression adjusts depending on available data) and all other field updates work fine, so my problem is really just for updating []struct type.