#python #python-3.x #amazon-dynamodb #boto3 #dynamodb-queries
#python #python-3.x #amazon-dynamodb #boto3 #dynamodb-запросы
Вопрос:
Я новичок в Dynamodb и в настоящее время учусь. Я использую python для запроса dynamodb, чтобы получить некоторые записи на основе условия IF.
У меня есть таблица dynamodb cus_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"
Ответ №1:
Похоже, вы хотели бы получить customerID
заданное token
.
Чтобы сделать это с вашим текущим дизайном таблицы, вы хотели бы использовать выражение фильтра, чтобы попросить DynamoDB вернуть все атрибуты, где token
равно пользовательскому вводу. Например, вот фрагмент в псевдокоде:
response = table.scan({"FilterExpression": "#token = :token",
"ExpressionAttributeNames": {"#token":"token"},
"ExpressionAttributeValues": {":token": {"S": <user_input>}})
Нет необходимости сканировать всю базу данных, возвращать ее в ваше приложение, а затем фильтровать результаты в вашем приложении.
Если вы только начинаете работать с DynamoDB, я бы настоятельно рекомендовал веб-сайт DynamoDB Guide. Он отлично объясняет DynamoDB новичкам.
Комментарии:
1. Я также хочу проверить, совпадает ли данный пользователем токен с токеном, существующим в таблице in. Только если токен совпадает, мне нужно получить соответствующий CustomerID
2. Эта операция сканирования вернет только те элементы, в которых токен соответствует тому, что вы запрашиваете (пользовательский ввод). Если совпадения нет, вы не получите результатов. Нет необходимости в дополнительной проверке. По умолчанию операция сканирования вернет все атрибуты в соответствующих элементах, что означает, что в ваших результатах будет указан идентификатор пользователя.