python - 使用python检查dynamodb表中是否存在值并获取该记录
问题描述
我是 Dynamodb 的新手,目前正在学习。我正在使用 python 查询 dynamodb 以根据 IF 条件获取一些记录。
我有一个 dynamodb 表cus_token
,只有两个属性 a) customerId 和 b) token
当用户提供令牌时,检查 cus_token 表中是否存在该令牌,如果存在,我想查询并获取该令牌的 customerID。我试着这样做
假设
user_input = "Rooxp9"
(这是 cus_token 表中的一个令牌)
首先获取所有带有token属性的值
import boto3
import json
def gettokens(y):
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('cus_token')
response = table.scan()
tokens = []
for i in response['Items']:
nameList.append(i['token'])
return tokens
temp = gettokens(cus_token)
使用 IF 条件检查
for item in temp:
if item == user_input:
"Here I want to write the code to fetch the customerID"
解决方案
听起来您想获取customerID
给定的 a token
。
要对您当前的表设计执行此操作,您需要使用过滤器表达式来要求 DynamoDB 返回token
等于用户输入的所有属性。例如,这是一个伪代码片段:
response = table.scan({"FilterExpression": "#token = :token",
"ExpressionAttributeNames": {"#token":"token"},
"ExpressionAttributeValues": {":token": {"S": <user_input>}})
无需扫描整个数据库,将其返回到您的应用程序,然后在您的应用程序中过滤结果。
如果您刚刚开始使用 DynamoDB,我强烈推荐The DynamoDB Guide website。它在向初学者解释 DynamoDB 方面做得很好。
推荐阅读
- c++ - 在 C++ 中实现和包装函数组合以进行惰性求值
- python-3.x - 如何在 Windows 10 上将代理配置到 GitBash 环境中
- c++ - 将指针数组传递给函数
- android - 离子诊断插件总是在 android 上返回“DENIE_ALWAYS”
- arrays - 来自另一个数组的键的字典值
- flutter - 如何在 Flutter 中设置用于 graph-ql 集成的演示客户端
- windows-community-toolkit - 尝试使用 WebView (Microsoft.Toolkit.Wpf.UI.Controls) 使用自签名证书导航到站点时,CertificateIsInvalid
- python - Python:d = _ 是什么意思?
- arrays - PostgreSQL 将多个结果添加到数组中
- android - 如何更改 RecyclerView 的褪色边缘颜色?