Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查客户是否在DynamoDB表中_Python_Amazon Web Services_Nosql_Dynamodb Queries - Fatal编程技术网

Python 检查客户是否在DynamoDB表中

Python 检查客户是否在DynamoDB表中,python,amazon-web-services,nosql,dynamodb-queries,Python,Amazon Web Services,Nosql,Dynamodb Queries,我已经编写了一些查询表的代码。现在我要给它添加例外。 我不熟悉Python和DynamoDB,因此进展缓慢,不一定朝着正确的方向发展。 我一直在检查通过input()输入的客户名称是否存在于表中 customer_name = input("Enter name:") try: response = table.get_item( TableName=table_name, Key={'customer':

我已经编写了一些查询表的代码。现在我要给它添加例外。 我不熟悉Python和DynamoDB,因此进展缓慢,不一定朝着正确的方向发展。 我一直在检查通过input()输入的客户名称是否存在于表中

        customer_name = input("Enter name:")
        try:
            response = table.get_item(
                TableName=table_name, Key={'customer': {'S': str(customer_name)}}
                )

        except ClientError:
            logger.info(f'The customer is not found.')
        else:
            response = table.query(
         # some code
            )
它不断返回客户不存在的消息。我不明白为什么。是否有更好的方法检查客户是否在表中? 每个客户名称下都有相当多的条目,因此理想情况下,它应该搜索到第一条记录并返回它存在的信息,但我不知道如何实现这一点=(


感谢您的帮助!

既然您写了每个客户名称下都有一些条目,那么您应该了解dynamoDB表是如何构建的以及getItem查询是如何工作的

简而言之:您只能通过“主键”获取项目,并且该主键必须是唯一的(这会突出显示错误的地方)

现在有一些解决方法,因为主键可以由分区键和排序键组成,使用它们可以搜索到具有特定客户名称的第一条记录

但是,作为初学者,我建议您每个客户只有一个条目,并按其名称查询客户。如果您想进行此操作,请阅读不同类型的键以及本地和全局二级索引