2

我正在尝试使用 Bulkloader 从我的数据存储区下载数据,但 DateTimeProperty 的精度似乎不正确,除非我做错了事。

这是我要下载的数据的属性:

class LoggingPrimitive(polymodel.PolyModel):
    [...]
    start = ndb.DateTimeProperty(auto_now_add=True, required=True)

这是我的 bulkloader.yaml 文件

- kind: LoggingPrimitive
  connector: csv
  connector_options:
    export_options:
      delimiter: "|"
  property_map:
    [...]
    - property: start
      external_name: start
      # Type: Date/Time Stats: 5123 properties of this type in this kind.
      import_transform: transform.import_date_time('%Y-%m-%dT%H:%M:%S')
      export_transform: transform.export_date_time('%Y-%m-%d %H:%M:%S.%f')

我下载的 CSV 中的数据如下所示:

    2013-05-25 22:06:17.

因此,下载的 CSV 数据不包含毫秒。

当我在交互式控制台中使用 transform.export_date_time 函数时,我确实得到了毫秒。

fn=transform.export_date_time('%Y-%m-%d %H:%M:%S.%f')
print fn(l.start)

所以毫秒信息在数据存储中,但似乎在批量加载过程中的某个地方丢失了。

有什么线索吗?

4

1 回答 1

1

使用 Python 2.7 运行 bulkloader 解决了这个问题。

显然,我运行 bulkloader 的机器使用的是 Python 2.5 ,它不支持 %f 宏,请参阅如何使用 python 解析包含毫秒的时间字符串?

于 2013-07-29T15:41:43.713 回答