繁体   English   中英

AWS Lambda Boto3 python - dynamodb 表上的过滤器表达式抛出错误“errorMessage”:“名称'Attr'未定义”,

[英]AWS Lambda Boto3 python - filter expression on dynamodb table throw error "errorMessage": "name 'Attr' is not defined",

我在 dynamodb 表上使用过滤器。 它会引发以下错误。 Boto3 文档显示 response = table.scan(FilterExpression=Attr('myattribute').eq('myvalue')

我做了同样的事情。 我想要此表中 agentRole = Receiver 的项目

  Response
  {
        "errorMessage": "name 'Attr' is not defined",
        "errorType": "NameError",
        "requestId": "1b2fbee6-5fa2-4951-8689-3d1bfec76e5c",
         "stackTrace": [
              "  File \"/var/task/lambda_function.py\", line 21, in lambda_handler\n    
          response = tableresource.scan(FilterExpression=Attr('agentRole').eq('Receiver'))\n"
       ]
   }

这是代码:

   import json
   import os
   import boto3
   from pprint import pprint

    #Find records that has agentRole as 'Receiver'

    tableName = os.environ.get('TABLE')
    fieldName = os.environ.get('FIELD')
    keytofind = os.environ.get('FILTER')
    fieldname = "agentRole"
    dbclient = boto3.resource('dynamodb')

    def lambda_handler(event, context):
   
         tableresource = dbclient.Table(tableName)
         count = tableresource.item_count
         response = tableresource.scan(FilterExpression=Attr('agentRole').eq('Receiver'))
        
 
 
from boto3.dynamodb.conditions import Attr

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM