python - 使用 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
是空的?或者我应该怎么做才能解决这个问题
解决方案
推荐阅读
- amazon-web-services - mlxtend 库在安装后无法在 AWS-Sagemaker 上运行
- android - 如何使用 SugarORM 在数据库中创建另一个表
- rest - 如何使用 golang 在 REST API url 中传递动态参数
- connection - 如何将 Mule 4.1.x 与 AWS Athena 数据库连接
- java - 如何将多个数据传输到不同的活动
- android - 即使我设置了 match_parent,框架布局高度也会自动降低到列表视图的高度。如何解决这个问题?
- java - 如何返回外部域中的文件?(弹簧启动/Java)
- c - C Linux内核页面干扰以前的变量
- database - 我们如何找到在 DB2 Activity Event Monitoring 中运行查询的表名?
- c# - 如何获取动态添加(值)的文本框值?