デバイスは私のパーティションキーです。テーブルは複数の異なるユーザーを同じデバイスの下に置くためのものです。ただし、次のput_item()コードを実行すると、同じDeviceキーがある場合は各ユーザーを上書きします。Dynamodb put_item()はデータを上書きします
例:device
変数としてMonitor
を入力し、gomez
変数をaliasInput
変数に設定して実行します。 device
変数としてMonitor
として再度実行しますが、craig
としてaliasInput
と入力すると、gomez
のエントリが上書きされます。私のテーブルにデータを入力する
機能:
import boto3
import json
import decimal
import time
import datetime
# Helper class to convert a DynamoDB item to JSON.
class DecimalEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, decimal.Decimal):
if o % 1 > 0:
return float(o)
else:
return int(o)
return super(DecimalEncoder, self).default(o)
dynamodb = boto3.resource('dynamodb', region_name='us-west-2', endpoint_url="http://localhost:8000")
table = dynamodb.Table('WishListTest')
device = input('What is the Item being requested?\n')
device = device.upper()
aliasInput = input('What is the Alias of the user?\n')
aliasInput = aliasInput.upper()
date = int((time.strftime("%d%m%Y")))
response = table.put_item(
Item={
'Device': device,
'RequestList': {
'Alias': aliasInput,
'Date': date
},
'AvailableQuanity': 0,
'ReserveQuanity': 0,
}
)
print("PutItem succeeded:")
print(json.dumps(response,
あなたが結果として見たいと思って何をすべきかのサンプル出力を提供していただけますか? 'Monitor'デバイスの複数の行、または複数の 'aliasInput'を持つ1つのレコード? – GSazheniuk