【AWS学习笔记】boto3实现dynamodb的查找和更新操作

import boto3
import os
import traceback
import time, datetime
import json


def dynamodb_get_name(region_name, profile_name, task_def_table):
try:
	session = boto3.session.Session(region_name=region_name, profile_name=profile_name)
	ddb_client = session.client('dynamodb')
	ddb_response = ddb_client.scan(
	TableName=table_name
	)
	items = ddb_response['Items']
	data = {}
	data_item = []
	for item in items:
		name = item['Name']['S']
		table_name = item['TableName']['S']
		temp_data = {'TableName': table_name, 'Name': name}
		data_item.append(temp_data)
		data.update({"Items": data_item})
	with open('output.json', 'w') as data_file:
		json.dump(data, data_file)
	data_file.close()
	
	except:
		errors = traceback.format_exc()
	
def dynamodb_update_name(region_name, profile_name, table_name):
	
try:
	session = boto3.session.Session(region_name=region_name, profile_name=profile_name)
	ddb_client = session.client('dynamodb')
	with open('output.json', 'r+', encoding='utf-8') as data_file:
	data = json.load(data_file)
	data_file.close()
	items = data['Items']
	for item in items :
		name = item['Name']
	update_item_response = ddb_client.update_item(
		TableName=table_name,
		Key={
			'Name': {
				'S': name
			}
		},
		ExpressionAttributeValues={
			':val': {
				'S': name
			}
		},
		UpdateExpression='set Name = :val',
		ReturnValues='ALL_NEW'
	)


except:
	errors = traceback.format_exc()


if __name__ == '__main__':
	region_name = 'us-west-1'
	profile_name = 'default' 
	table_name = 'fake-table-name'
	dynamodb_get_name(region_name=region_name, profile_name=profile_name, table_name=table_name)
	dynamodb_update_name(region_name=region_name, profile_name=profile_name, table_name=table_name)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值