python - 使用 Python 更新 DynamoDB 表中的 JSON 记录
问题描述
我有一个 JSON 记录,如下所示:
{'ip_address': data['src_ip'],
'first_seen': data['timestamp'],
'last_seen': data['timestamp']
}
ip_address
记录作为主键存储在 DynamoDB 表中。
当相同的 IP 再次出现时,我想更新最后一次看到的值。我用以下几行创建了一个函数:
def update_db(json_result):
ddb_data = json.loads(json.dumps(json_result), parse_float=Decimal)
database = boto3.resource('dynamodb', endpoint_url="https://dynamodb.us-west-2.amazonaws.com")
table = database.Table('IPData')
print("adding :", json_result)
#db_add = table.put_item(Item = ddb_data)
response = table.update_item(
Key = {
'ip_address': json_result['ip_address']
},
UpdateExpression="SET 'last_seen' = :s",
ExpressionAttributeValues = {
':s': json_result['last_seen']
},
ReturnValues="UPDATED_NEW"
)
return response
这会导致错误:
{
"errorMessage": "An error occurred (ValidationException) when calling the UpdateItem operation: Invalid UpdateExpression: Syntax error; token: \"'\", near: \"SET 'last_seen\"",
"errorType": "ClientError",
不确定我的语法有什么问题。有人可以帮我解决这个问题。
解决方案
推荐阅读
- python - 在 Selenium C# 中滚动某些像素
- c++ - source_location::current() 评估为默认的非类型模板参数
- node.js - Heroku 在它自己的 github repo 上为带有嵌套 react/webpack 客户端的节点服务器构建循环
- python - 如何编译 SQLite 以与 Python 应用程序一起使用
- c++ - C++ 函数完全专业化给出错误
- javascript - 如何遍历对象并获取每个元素的索引并将其存储在数组中?
- python - 用python3移动一个矩形
- scipy - Python scipy.minimize
- javascript - ES6 返回一个新的密钥对值
- tensorflow - 如何理解 tensorflowjs 对象检测张量输出?