【发布时间】:2021-04-16 22:51:52
【问题描述】:
在 Python 中,我需要在 google-cloud firestore 文档中设置时间戳字段。
我知道firestore 时间戳字段应使用google.api_core.datetime_helpers.DatetimeWithNanoseconds 设置,它是Datetime 的子类
我需要使用指定的分钟字段设置 now() 时间戳,并按以下给出的特定小时拨回
'cursor_specs' = {
# specs to construct the next cursor
'minute_tick': 0,
'hours_dial_back': 1,
},
因为DatetimeWithNanoseconds是Datetime的子类,据说继承了它的所有功能,所以我尝试直接用DatetimeWithNanoseconds使用now()和replace()
from google.api_core.datetime_helpers import DatetimeWithNanoseconds
time_cursor = DatetimeWithNanoseconds.now().replace(minute=cursor_specs['minute_tick'],
second=0, microsecond=0
) - timedelta(hours=cursor_specs['hours_dial_back']
fs_model = fs.document(model["name"]).set({'time_cursor': time_cursor})
由于错误而失败
File "/usr/local/lib/python3.8/site-packages/google/cloud/firestore_v1/_helpers.py", line 219, in <dictcomp>
return {key: encode_value(value) for key, value in values_dict.items()}
File "/usr/local/lib/python3.8/site-packages/google/cloud/firestore_v1/_helpers.py", line 173, in encode_value
return document.Value(timestamp_value=value.timestamp_pb())
File "/usr/local/lib/python3.8/site-packages/google/api_core/datetime_helpers.py", line 271, in timestamp_pb
nanos = self._nanosecond or self.microsecond * 1000
AttributeError: _nanosecond
【问题讨论】:
标签: python datetime google-cloud-firestore python-datetime