是否可以将日期时间保存到DynamoDB?

2024-04-24 08:44:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下一个代码:

users_table = Table(users_table_name, connection=Core.aws_dynamodb_connection)
users_table.put_item(data={
  "login": login,
  "password": hashlib.sha256(password.encode("utf-8")).hexdigest(),
  "profile": profile,
  "registration_date": datetime.now() # PROBLEM IS HERE
})

但当我运行它时,它失败了,并出现错误:

TypeError: Unsupported type "< type 'datetime.datetime' >" for value "2015-01-12 05:02:57.053131"

我尝试了很多方法,但似乎不可能将datetime保存到DynamoDB。顺便说一下,它在MongoDB中运行良好。

有什么解决办法吗?


Tags: 代码namecoreawsdatetimeputtypetable
3条回答

根据亚历杭德罗·弗兰科的说法,开个玩笑吧。

刚刚测试过,这是一个有效的例子:

CustomerPreferenceTable.put_item(
    Item={
        "id": str(uuid4()),
        "validAfter": datetime.utcnow().isoformat(),
        "validBefore": (datetime.utcnow() + timedelta(days=365)).isoformat(),
        "tags": ["potato", "eggplant"]
    }
)

根据文件: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/JavaSDKHighLevel.html

Date S (string type). The Date values are stored as ISO-8601 formatted strings.

好吧,我看到DynamoDB不支持任何日期类型。因此,唯一的解决方案是使用类unix的时间作为整数,或者将日期保存为字符串。

enter image description here

相关问题 更多 >