Python DynamoDB-更新对象值

Python DynamoDB-更新对象值,python,amazon-dynamodb,boto3,Python,Amazon Dynamodb,Boto3,我对DynamoDB还很陌生,我可能遗漏了一些东西,但我就是不知道如何正确处理对象值。 我有一个表,每行有一个user\u id和data字段,其中user\u id是主键,data是一个对象(嵌套对象),其中包含与用户相关的所有数据,我希望为客户端提供一个更新api来配置用户数据 假设我想将这个对象从数据:{addresses:{old_home:'San Francisco'}}更新到 data: { addresses: { old_home: 'San Francisco', home:

我对DynamoDB还很陌生,我可能遗漏了一些东西,但我就是不知道如何正确处理对象值。
我有一个表,每行有一个
user\u id
data
字段,其中
user\u id
是主键,
data
是一个对象(嵌套对象),其中包含与用户相关的所有数据,我希望为客户端提供一个更新api来配置用户数据

假设我想将这个对象从
数据:{addresses:{old_home:'San Francisco'}}
更新到

data: { addresses: { old_home: 'San Francisco', home: 'NYC', work: 'Washington' } }
我将python与boto3一起使用,我能找到的最接近的方法是

dynamodb.Table(table_name).update_item(
            Key={
                'user_id': user_id
            },
            UpdateExpression='SET data.#attr1= :val1',
            ExpressionAttributeNames={'#attr1': 'addresses'},
            ExpressionAttributeValues={':val1': { 'home': 'NYC', 'work': 'Washington' }}
        )
这还不够好,因为它用一个新对象替换了旧的
数据。将
对象寻址并覆盖
{old\u home:'San Francisco'}

我可以想出两种解决方案——一种是获取旧项,通过编程进行更新,然后编写新的合并对象。第二种方法是逐个添加新属性,这很糟糕,因为它需要对dynamo进行多个SET调用

我有什么遗漏吗?有没有更好的方法来处理dynamo对象