python - AWS DynamoDB 使用 Python/Boto3/Lamba 更新整数计数器
问题描述
我有一个带有整数值的 DynamoDB 表,需要使用 Python/Boto3/AWS-Lambda 环境递增。
userMetrics
{
"userid": 1234567890,
"likemetrics": 0,
"lasttimestamp": 1604553995
}
我正在尝试使用原子增量方法dynamodb 来增加 likemetrics 整数计数器:如何增加 map 中的值,但在测试期间失败。
responseupd = dydb_usertable.update_item(
Key = {
'userid': 1234567890
},
ExpressionAttributeValues: { ":inc": {N: "1"} },
UpdateExpression: "ADD likemetrics :inc"
})
控制台抛出的错误是
{
"errorMessage": "Syntax error in module 'lambda_function': unindent does not match any outer indentation level (lambda_function.py, line 34)",
"errorType": "Runtime.UserCodeSyntaxError",
"stackTrace": [
" File \"/var/task/lambda_function.py\" Line 34\n responseupd = dydb_usertable.update_item(\n"
]
}
解决方案
请仔细查看此处的文档:
您正在使用混合的 Javascript 和 Python 语法。应更正如下:
dydb_usertable.update_item(
Key = {
'userid': {
'N': 1234567890
}
},
ExpressionAttributeValues = { ":inc": {"N": "1"} },
UpdateExpression = "ADD likemetrics :inc"
})
推荐阅读
- c++ - 如何正确同步 c/c++ 应用程序中的线程?
- python - 如何在这段代码中用我的 txt 替换 nltk 字典?
- python - 通过在 python 中引用数据框中的其他列来创建新列
- error-handling - 为什么标准错误需要在main中装箱,而不是io错误?
- r - 我正在尝试运行下面的代码,但我收到一条错误消息,提示找不到对象“delta”。你知道是什么问题吗?
- python - 如何在包含特定“子字符串”的单列 CSV 文件中选择特定行并使用 python Pandas 添加到新列表中?
- docker - 为什么 docker 容器看不到不同容器上的卷?
- apache-kafka - Kafka Connect:以独立模式读取“Connect.offsets”以获取最后处理的偏移量
- python - Python中没有抽象方法的抽象数据类:禁止实例化
- c# - EF Core 的 ConstantExpression 中的正确集合