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)
【AWS学习笔记】boto3实现dynamodb的查找和更新操作
最新推荐文章于 2023-10-11 10:13:14 发布