for循环只接受python aws dynamodb中的最后一个值

2024-09-28 03:17:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将记录插入表中,但只有循环中的最后一条记录(结果数据)插入表中

以下是我尝试的代码:

CDates = ['2020-05-10','2020-05-12','2020-05-13','2020-05-16','2020-05-20']

ResultData = {}
for date in CDates:
   filterDate = Key('Date').eq(id)
   appResponse = appTable.scan(FilterExpression = filterDate)
   accResp = table.query(KeyConditionExpression = Key('PrimaryId').eq('Key'),FilterExpression = Key('Date').eq(date))
   if len(accResp['Items']) == 0:
       ResultData['PrimaryId'] = 'Key'
       ResultData['CreatedDate'] = date
       ResultData['Type'] = 'Appt'
       ResultData['Id'] = str(uuid.uuid4())
       print(ResultData)
       table.put_item(Item=ResultData)   

没有得到我错在哪里


Tags: 数据key代码fordate记录tableeq
1条回答
网友
1楼 · 发布于 2024-09-28 03:17:46

您将ResultData分配到循环外部,并在每次循环运行时更改相同键的值。试试这个:

CDates = ['2020-05-10', '2020-05-12', '2020-05-13', '2020-05-16', '2020-05-20']

for date in CDates:
    filterDate = Key('Date').eq(id)
    appResponse = appTable.scan(FilterExpression=filterDate)
    accResp = table.query(
        KeyConditionExpression=Key('PrimaryId').eq('Key'),
        FilterExpression=Key('Date').eq(date))
    if len(accResp['Items']) == 0:
        ResultData = {
            'PrimaryId': 'Key',
            'CreationDate': date,
            'Type': 'Appt',
            'Id': str(uuid.uuid4())
        }
        print(ResultData)
        table.put_item(Item=ResultData)

相关问题 更多 >

    热门问题