35
loading...
This website collects cookies to deliver better user experience
import boto3
from boto3.dynamodb.conditions import Key
dynamodb = boto3.resource("dynamodb")
dynamodb.create_table(
TableName='PartidosFutbol',
KeySchema=[
{
'AttributeName': 'Liga',
'KeyType': 'HASH' # Partition key
},
{
'AttributeName': 'Partido',
'KeyType': 'RANGE' # Sort key
}
],
#Se deben crear las llaves nuevamente con su tipo de dato
AttributeDefinitions=[
{
'AttributeName': 'Liga',
'AttributeType': 'S' # Se utiliza S para tipos de datos String y N para numeros
},
{
'AttributeName': 'Partido',
'AttributeType': 'S'
}
],
ProvisionedThroughput={
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5
}
)
table = dynamodb.Table("PartidosFutbol")
table.put_item(Item={
"Liga": "Premier League#2021/22",
"Partido":"Chelsea#Manchester City#2021/09/26",
"Local":"Chelsea",
"Visitante":"Manchester City",
"MarcadorLocal":1,
"MarcadorVisitante": 2,
"Fecha":"2021/09/26"
})
table.update_item(
Key={
"Liga": "Premier League#2021/22",
"Partido": "Chelsea#Manchester City#2021/09/26"
},
UpdateExpression="set MarcadorVisitante=:marcador_visitante,MarcadorLocal=:marcador_local",
ExpressionAttributeValues={
":marcador_visitante":1,
":marcador_local":0
},
ReturnValues="UPDATED_NEW"
)
partidos = []
partido1 = {"Liga": "Premier League#2021/22","Partido":"Arsenal#Tottenham Hotspur#2021/09/26","Local":"Arsenal","Visitante":"Tottenham","MarcadorLocal":3,"MarcadorVisitante": 1,"Fecha":"2021/09/25"}
partido2 = {"Liga": "LaLiga#2021/22","Partido":"Athletic Bilbao#Rayo Vallecano#2021/09/21","Local":"Athletic Bilbao","Visitante":"Rayo Vallecano","MarcadorLocal":1,"MarcadorVisitante": 2,"Fecha":"2021/09/21"}
partidos.append(partido1)
partidos.append(partido2)
with table.batch_writer() as batch:
for p in partidos:
content = {
"Liga": p["Liga"],
"Partido":p["Partido"],
"Local":p["Local"],
"Visitante":p["Visitante"],
"MarcadorLocal":p["MarcadorLocal"],
"MarcadorVisitante": p["MarcadorVisitante"],
"Fecha":p["Fecha"]
}
batch.put_item(Item=content)
table.query(KeyConditionExpression=Key('Liga').eq("Premier League#2021/22"),
ProjectionExpression="table.query(KeyConditionExpression=Key('Liga').eq("Premier League#2021/22"),
ProjectionExpression="#L,MarcadorLocal,Visitante,MarcadorVisitante",
ExpressionAttributeNames = {'#L': 'Local'}
),MarcadorLocal,Visitante,MarcadorVisitante",
ExpressionAttributeNames = {'#L': 'Local'}
)
table.query(KeyConditionExpression=Key('Liga').eq("LaLiga#2021/22") & Key("Partido").eq("Athletic Bilbao#Rayo Vallecano#2021/09/21")
)
table.query(KeyConditionExpression=Key('Liga').eq("Premier League#2021/22"),
FilterExpression= 'Fecha = :Fecha',
ExpressionAttributeValues= {
':Fecha': '2021/09/25'
}
)
table.delete_item(
Key={
'Liga': "Premier League#2021/22",
"Partido":"Chelsea#Manchester City#2021/09/26"
},
ConditionExpression="MarcadorLocal = :marcador_local and MarcadorVisitante =:marcador_visante",
ExpressionAttributeValues={
":marcador_local": 0,
":marcador_visante": 1,
}
)