首页 > 解决方案 > 使用 Python 脚本将 CSV 文件上传到 DynamoDB

问题描述

我正在尝试将 CSV 文件上传到 DynamoDB。为此,我在下面编写了 Python 脚本:

import boto3
import csv

dynamodb = boto3.resource('dynamodb')


def batch_write(table, rows):
  table = dynamodb.Table(table_name)

  with table.batch_writer() as batch:
    for row in rows:
        batch.put_item(row)

def read_csv(csv_file, list1):
    rows = csv.DictReader(open(csv_file))

    for row in rows:
        list1.append(row)

if __name__ == '__main__':
   table_name = 'Chicago_rest_ass4'
   file_name = 'Food_Inspections.csv'
   items = []

   read_csv(file_name, items)
   status = batch_write(table_name, items)
   if status == 'True':
      print('Data is saved')
   else:
      print('Error while inserting data...')

但是出现以下错误:

botocore.exceptions.ClientError:调用 BatchWriteItem 操作时发生错误 (ValidationException):一个或多个参数值无效:AttributeValue 可能不包含空字符串

我无法识别怎么Item=row是空的?或者我应该怎么做才能解决这个问题

标签: pythonamazon-web-servicescsvamazon-dynamodbboto3

解决方案


推荐阅读