2. Loading Sample DataΒΆ
awstin.dynamodb.Table.put_item() takes instances of the data model
to insert into DynamoDB after serialization.
awstin handles conversions between float and Decimal internally,
so float can be used when instantiating data models.
import json
from models import Movie
from awstin.dynamodb import DynamoDB
def load_movies(movies):
dynamodb = DynamoDB()
table = dynamodb[Movie]
for movie_json in movies:
movie = Movie(
title=movie_json["title"],
year=movie_json["year"],
info=movie_json["info"],
)
table.put_item(movie)
if __name__ == "__main__":
with open("moviedata.json", "r") as json_file:
movie_list = json.load(json_file)
load_movies(movie_list)
awstin.dynamodb.DynamoModel has
awstin.dynamodb.DynamoModel.serialize() and
awstin.dynamodb.DynamoModel.deserialize() methods to convert between
DynamoDB representations of data and the data models, and can be used to read
data from JSON.
import json
from models import Movie
from awstin.dynamodb import DynamoDB
def load_movies(movies):
dynamodb = DynamoDB()
table = dynamodb[Movie]
for movie in movies:
table.put_item(movie)
if __name__ == "__main__":
with open("moviedata.json", "r") as json_file:
movie_list = json.load(json_file)
load_movies([Movie.deserialize(movie) for movie in movie_list])