Ich versuche put_item zu haben, um zu prüfen, ob es einen Artikel mit demselben HashKey gibt, bevor der neue Artikel tatsächlich hinzugefügt wird.Boto DynamoDB2 konditional put_item
Laut boto DynamoDB2 Dokument ist es möglich, es mit "Conditional Put" zu tun.
Ich versuchte folgenden Befehl, aber kein Glück.
connection.put_item('table',item={'locationId':'a1', 'timestamp': time.time()}, expected={'locationID':False})
Die Fehlermeldung lautet wie folgt.
boto.exception.JSONResponseError: JSONResponseError: 400 Bad Request
{u'Message': u'Expected null', u'__type': u'com.amazon.coral.service#SerializationException'}
Hat jemand eine bedingte Put mit DynamoDBv2?
Vielen Dank an alle im Voraus.
Sie können DynamoDB anweisen, das Element nur zu speichern, wenn nicht bereits ein Element mit demselben Primärschlüssel vorhanden ist. In diesem Fall müsste die '' expected''-Klausel auf diesen Primärschlüssel und nicht auf '' False' 'verweisen '. – garnaat
@garnaat, Vielen Dank für den Kommentar. Ich denke, dass es mehrere Fehler geben kann. Ich habe den Befehl auch ohne 'expected' Teil ausprobiert und trotzdem den gleichen Fehler erhalten -' boto.exception.JSONResponseError: JSONResponseError: 400 Ungültige Anfrage {u'Message ': u'Expected null', u '__ type': u'com .amazon.coral.service # SerializationException '} '. Ich frage mich, ob es irgendwelche bedingten 'put_item()' Beispiele gibt, die ich mir ansehen kann ... Ich habe versucht, Google zu suchen, aber kein Glück. – nicklee
@garnaat Haben Sie Beispielcodes, die mit DynamodB v2 funktionieren? – nicklee