如何解决使用python检查dynamodb表中是否存在值并获取该记录
我是Dynamodb的新手,目前正在学习。我正在使用python查询dynamodb以基于IF条件获取一些记录。
我有一个动态表cus_token
,只有两个属性:a)customerId和b)令牌
当用户提供令牌时,请检查cus_token表中是否存在该令牌,并且是否存在,我想查询并获取该令牌的customerID。我尝试过这种方式
假设
user_input = "Rooxp9"
(这是cus_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
来获取token
。
要使用当前表设计执行此操作,您想使用Filter Expression来要求DynamoDB返回token
等于用户输入的所有属性。例如,这是一个伪代码段:
response = table.scan({"FilterExpression": "#token = :token","ExpressionAttributeNames": {"#token":"token"},"ExpressionAttributeValues": {":token": {"S": <user_input>}})
无需扫描整个数据库,将其返回到您的应用程序,然后在应用程序中过滤结果。
如果您刚开始使用DynamoDB,我强烈建议The DynamoDB Guide website。向初学者解释DynamoDB的工作非常出色。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。