के साथ एक रेंज कुंजी मुझे AWS Boto3 का उपयोग करने में समस्या है, जिसमें हैश कुंजी के साथ डायनेमो डीबी और एक ही समय कुंजी की आवश्यकता है, जिसमें KeyConditionExpression की सिफारिश की जा रही है।एक हैश कुंजी के साथ क्वेरी डायनेमोडीबी और बोटो 3
import boto3
from boto3 import dynamodb
from boto3.session import Session
dynamodb_session = Session(aws_access_key_id=AWS_KEY,
aws_secret_access_key=AWS_PASS,
region_name=DYNAMODB_REGION)
dynamodb = dynamodb_session.resource('dynamodb')
table=dynamodb.Table(TABLE_NAME)
request = {
'ExpressionAttributeNames': {
'#n0': 'hash_key',
'#n1': 'range_key'
},
'ExpressionAttributeValues': {
':v0': {'S': MY_HASH_KEY},
':v1': {'N': GT_RANGE_KEY}
},
'KeyConditionExpression': '(#n0 = :v0) AND (#n1 > :v1)',
'TableName': TABLE_NAME
}
response = table.query(**request)
जब मैं निम्नलिखित योजना के साथ एक मेज के खिलाफ इस चलाएँ:: मैं एक उदाहरण क्वेरी संलग्न
Table Name: TABLE_NAME
Primary Hash Key: hash_key (String)
Primary Range Key: range_key (Number)
मैं निम्न त्रुटि और मैं नहीं समझ सकता हो क्यों:
ClientError: An error occurred (ValidationException) when calling the Query operation: Invalid KeyConditionExpression: Incorrect operand type for operator or function; operator or function: >, operand type: M
मेरी समझ से टाइप एम एक नक्शा या शब्दकोश प्रकार होगा और मैं एक प्रकार का उपयोग कर रहा हूं जो कि एक प्रकार का है और रेंज कुंजी के लिए मेरी टेबल योजना से मेल खाता है। अगर कोई यह समझा सकता है कि यह त्रुटि क्यों हो रही है या मैं एक ही प्रश्न को पूरा करने के एक अलग तरीके के लिए भी खुला हूं, भले ही आप यह समझा नहीं सकें कि यह त्रुटि क्यों मौजूद है।
क्या आपने पता लगाया कि आपके कोड में क्या गलत था? मैं एक समान समस्या में भाग रहा हूँ। – tayfun