Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Dynamodb在dict中添加或更新密钥_Python 3.x_Dictionary_Amazon Dynamodb - Fatal编程技术网

Python 3.x Dynamodb在dict中添加或更新密钥

Python 3.x Dynamodb在dict中添加或更新密钥,python-3.x,dictionary,amazon-dynamodb,Python 3.x,Dictionary,Amazon Dynamodb,我有一个dynamodb表,其结构如下: 'Items': [ {'user_id': 'myuser', 'owes_to': { 'youruser': '10', 'user3': '20' } }] 在dynamodb中是否可以在owes\u to中创建新的用户密钥,或者如果它已经存在,则添加到该密钥的值中 在两个调用中的示例中: 添加值为20的“user4”,它不存在,因此创建值为20的user4键) 下次将use

我有一个dynamodb表,其结构如下:

'Items': [
   {'user_id': 'myuser',
    'owes_to': {
         'youruser': '10',
         'user3': '20'
       }
   }]
在dynamodb中是否可以在
owes\u to
中创建新的用户密钥,或者如果它已经存在,则添加到该密钥的值中

在两个调用中的示例中:

  • 添加值为20的“user4”,它不存在,因此创建值为20的user4键)
  • 下次将user4值20更新为40时,此时间键已存在,因此将20添加到现有值中

  • 更新表达式可能类似于以下内容:

    update_request = {
        Key={'user_id': ':id'},
        UpdateExpression='SET owes_to.#user_name = if_not_exists(owes_to.#user_name, :default_val) + :val',
        ExpressionAttributeNames={
            '#user_name': <your_user_name>
        }
        ExpressionAttributeValues={
            ':id': 'myuser',
            ':val': <your_update_value>,
            ':default_val': 0
        }
    }
    
    update\u请求={
    Key={'user_id':':id'},
    UpdateExpression='SET owes_to.#user_name=如果不存在(owes_to.#user_name,:default_val)+:val',
    表达式属性名称={
    “#用户名”:
    }
    表达式属性值={
    “:id”:“myuser”,
    “:val”:,
    “:默认值”:0
    }
    }
    
    注意
    if_not_存在(归功于.#user_name,:default_val)
    construction。如果存在,它将获取用户的值;如果不存在,它将获取
    :default_val
    中指定的值。 有关在中添加和更新贴图值的详细信息