You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中为DynamoDB UpdateExpression传入变量名

解决DynamoDB UpdateExpression文档路径无效的问题

直接将变量file拼接进UpdateExpression会触发ValidationException,核心原因是如果file的值包含特殊字符(比如点.、空格、DynamoDB关键字),会被判定为无效的文档路径。正确的做法是使用ExpressionAttributeNames安全映射属性名,避免直接拼接。

修改后的代码如下:

response = table.update_item(
    Key={"runid": item["runid"]},
    UpdateExpression="SET #file_attr = :val1, update_date = :val2",
    ExpressionAttributeNames={
        "#file_attr": file  # 用占位符映射变量file对应的属性名
    },
    ExpressionAttributeValues={
        ":val1": item[file],
        ":val2": item["update_date"],
    }
)

关键说明:

  • 用#file_attr作为属性名的占位符,替代直接拼接file变量
  • 在ExpressionAttributeNames字典中,将占位符和实际的属性名(即file变量的值)绑定
  • 这种方式兼容所有合法的属性名,包括带特殊字符或关键字的情况

内容的提问来源于stack exchange,提问作者Neethu Lalitha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:32:37