1

我有一个带有日期字段的集合。集合的示例 json 格式如下:

{
"processID" : "1410449146441-3-8863e29e0055",
"department" : "ABC",
"price" : 9.99,
"unitSold" : 19,
"date" : 1410449146442
},
{
"processID" : "14104491tf-alhb-8863e29e0055",
"department" : "XYZ",
"price" : 19.99,
"unitSold" : 21,
"date" : 1410985985985  
}

我需要将此日期字段转换为 ISOdate 格式,以便从中提取年、月和日。我需要在 pymongo 中完成。我尝试这样做datetime.datetime.fromtimestamp({"$divide": ["$date", 1e3]}),但收到错误“TypeError:需要浮点数”

你能告诉我在pymongo中做这件事的好方法吗

4

1 回答 1

0

您收到错误是因为 fromtimestamp 是 Python 函数而不是 Mongo DB 函数。.fromtimestamp 期望浮动,而不是您提供了一个字典。在遍历光标时使用 datetime 模块进行转换:

import datetime
for x in cursor:
    timestamp = datetime.datetime.fromtimestamp(x.get("date")/1000)
    # timestamp = object of type datetime.

注意:如果不将 long 值除以 1000,则会得到“年份不在范围内”的错误。

于 2020-02-12T15:34:01.473 回答