我是使用Python运行时的AWS Lambda新手,我正在编写一个python lambda函数,它从dynamo db获取结果,下面是我的患者表dynamo db结构。
{
"patient_id": 161,
"patientVisits": [
{
"Diagnosis": [
{
"Diagnosis_Completion": "Definitive",
"DiagnosisId": 100,
"ICD_Code": "test ICd code for dignosis Id 100"
}
],
"Follow_Up_Recommendation": "Follow up recommendation Test",
"visitId": 123
},
{
"Diagnosis": [
{
"Diagnosis_Completion": "Definitive",
"DiagnosisId": 100,
"ICD_Code": "test ICd code for dignosis Id 100"
}
],
"visitId": 124
}]}
此处患者表的关键字为patient_id且其具有许多属性,其中一个属性是患者访问列表,其中还有visitId,还包括诊断列表,我的要求是根据patientId和visitId进行诊断,所以我试着写python lambda就像这样
def list(event, context):
table = dynamodb.Table(os.environ['PATIENT_TABLE'])
patientId = 130
visitId = 124
# fetch all patientVisits from the database
result = table.query(
ProjectionExpression="#patientId, #pv.Diagnosis",
FilterExpression = '#pv.visitId = :visit_id',
ExpressionAttributeNames={ "#patientId": "patientId", "#pv" : "patientVisits"}, # Expression Attribute Names for Projection Expression only.
ExpressionAttributeValues= {":visit_id": visitId},
KeyConditionExpression=Key('patient_id').eq(patientId)
)
以上是给我零结果,如果我将ProjectionExpression#pv.Diagnosis更改为#pv [0],请你帮我解决这个问题。诊断以及FilterExpression然后这个工作只给我第0个索引,如果visitId与第0个索引的visitID匹配,但是我想从来自visitId和patientId的patientVisits获取诊断列表,请你帮我解决这个问题。从很长一段时间里挣扎
提前谢谢你!!!