首页 > 解决方案 > 使用python将解析的csv文件上传到DyanmoDB时如何使关键元素与模式匹配

问题描述

我正在使用 AWS Cloud9 并收到以下错误,“botocore.exceptions.ClientError:调用 BatchWriteItem 操作时发生错误(ValidationException):提供的关键元素与架构不匹配”。

我尝试重新创建一个较小的表格来解决这个问题。我只用 2 列创建了一个表:“Card_Number”(数字)和“详细信息”(字符串)。

我尝试在 item[] 部分中添加类似的内容,但它产生了我无法解决的语法错误......

items = ['Card_Number':row.split{',')[0],
            'Detials':row.split{',')[1]]

import boto3
import csv

dynamodb = boto3.resource('dynamodb', 'us-east-1')

def batch_write(table_name,rows):
    table = dynamodb.Table(table_name)
with table.batch_writer() as batch:
    for row in rows:
        batch.put_item(Item=row)
return True

def read_csv(csv_file,list):

    rows = csv.DictReader(open('testTable1.csv'))

for row in rows:
    list.append(row)

if __name__ == '__main__':

table_name = 'testTable1'
file_name = 'testTable1.csv'
items= []

read_csv(file_name, items)
status = batch_write(table_name,items)

if(status):
    print('Data is saved')
else:
    print('Error while insterting data...')

我希望看到数据显示在 DynamoDB 中,我已经在这方面工作了数周,之前没有任何经验。所以,我真的可以用一些帮助来保持我的理智。

标签: pythoncsvamazon-dynamodbboto3

解决方案


推荐阅读