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 でバルクローダーを実行すると、この問題が解決されました。

どうやら私がバルクローダーを実行していたマシンは Python 2.5 を使用していたようで、これは %f マクロをサポートしていません。 Pythonでミリ秒を含む時間文字列を解析するにはどうすればよいですか? を参照してください。

于 2013-07-29T15:41:43.713 に答える