Привет. Я пытаюсь сгенерировать таблицу, в которой будут все поездки за 1 день. Один из атрибутов 1 поездки на такси будет включать в себя список всех скидок, которые были использованы в этой поездке.
Может использоваться любое количество скидок. Я не уверен, как это сделать, как я могу включить этот список скидок в один атрибут товара? Таким образом, в основном написать 1 элемент со списком атрибутов в DynamoDB?
Вот моя таблица:
def create_table(self):
table = dynamodb.create_table(
TableName='TaxiTable',
KeySchema=[
{
'AttributeName': 'trip',
'KeyType': 'HASH'
},
],
AttributeDefinitions=[
{
'AttributeName': 'trip',
'AttributeType': 'S'
},
],
ProvisionedThroughput={
'ReadCapacityUnits': 10,
'WriteCapacityUnits': 10
}
)
print("Table status:", table.table_status)
Ключ 'trip' будет состоять из 1 длинной строки с началом этой поездки на такси где была последняя остановка дня, номер такси, количество остановок и дата поездки.
trip_key: 12thAve.MapleDrive.0124.02.02202020
внизу в качестве атрибута я хотел бы получить список всех скидок, которые были использованы в этой поездке на такси / Что-то вроде:
trip_key: 12thAve.MapleDrive.0124.02.02202020
discount_map:
{
discount1: { name: 'Senior', total_saved: '10'},
discount2: { name: 'Student', total_saved: '30'},
discount3: { name: 'Employee', total_saved: '20'},
discount4: { name: 'Hotel', total_saved: '30'}
}
Я не знаю, сколько скидок можно было использовать в одной поездке. Может быть между 5-10. Но я хотел бы включить все скидки, используемые в одной вкладке. Я хотел бы запросить указанную c скидку, используемую в поездке на такси, и общую сумму, сохраненную из этой таблицы.
Я не знаю, следует ли сначала преобразовать список в JSON объект? Или, если есть способ перебрать список и вставить его так, как я хотел бы.
import boto3
class taxi_discount:
name = None
total_saved = None
# rest of logic for this class...
class insert_to_dynamoDb:
dynamodb = boto3.resource('dynamodb', region_name='us-west-2', endpoint_url="http://localhost:8000")
taxi_trip_key= None
taxi_discounts_list = []
def __init__(taxi_trip, discount_list):
self.taxi_trip_key= taxi_trip
self.discount_list = discount_list
def write_to_table(self):
table = dynamodb.Table('TaxiTable')
response = table.put_item(
Item={
'trip': taxi_trip_key,
'discount_map': taxi_discounts_list
}
} )