You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Lambda中实现大小写不敏感的DynamoDB查询

解决方案

因为你的DynamoDB表中属性值均为大写,而输入参数i可能是任意大小写组合,只需将输入参数统一转换为大写,再配合Scan操作(你提到需要扫描操作,原代码用的是query,这里替换为scan)即可实现匹配:

import boto3
from boto3.dynamodb.conditions import Attr

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Plant1')   
i = "it"  # 这里可以是任意大小写组合的输入

# 将输入参数转换为大写,与表中数据格式统一
i_upper = i.upper()

# 执行Scan操作,使用转换后的大写参数进行匹配
response = table.scan(
    FilterExpression=Attr('PLANT_ID').contains(i_upper) | 
                     Attr('CTRY_CD').contains(i_upper)
)
items = response['Items']
return items

关键说明:

  • 大小写统一:通过i.upper()将输入的任意大小写字符串转为大写,确保和表中存储的大写属性值匹配,避免因大小写差异导致的匹配失败。
  • 替换为Scan操作:原代码使用的query是针对主键/索引的查询操作,而你需要的是全表扫描,因此改用table.scan()方法。

内容的提问来源于stack exchange,提问作者Buddhadeb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:31:10