簡體   English   中英

如何從 DynamoDB 更新 Python 中的最新數據條目?

[英]How can I update the latest data entry from DynamoDB in Python?

所以我已經在網上搜索了解決方案,但沒有找到任何解決方案。
所以我想要使用 python 的 dynamoDB 表中的最新數據條目,我需要更新它。 我面臨幾個問題。
首先,我沒有獲取獲取和更新表中最新條目的代碼。 這是我用來至少首先獲得最新值的代碼。

import json
from decimal import Decimal
from boto3.dynamodb.conditions import Key

import boto3
dynamodb = boto3.resource('dynamodb')

table = dynamodb.Table('Test')

def lambda_handler(event, context):
    
    response = table.update_item(
        Key = {

            "Time": Decimal(4193082887.620961)

        }
    )
    print(response['Item'])

其次,我的表中的數據是浮點格式的,因此當我嘗試獲取它時,它給了我錯誤DynamoDB does not support float format. Try converting it to decimal DynamoDB does not support float format. Try converting it to decimal 所以我做了,但現在它不匹配該值,即使該值存在於數據庫中但以浮點格式存在。

  1. 您需要為每個項目設置某種時間戳列,使該列成為表的排序鍵,然后運行table.query(..., ScanIndexForward=False, limit=1)這將返回按相反順序排序的項目和限1項。

  2. 比較浮點數是 boto3 DynamoDB 中的一個老問題,請參閱問題 大多數接受的黑客是做這樣的事情:

from decimal import Decimal
dynamo_item = json.dumps(dynamo_response)
parsed_response = json.loads(dynamo_item, parse_float=Decimal)

您的里程可能會有所不同,請參閱我為其他解決方案鏈接的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM