Импорт данных GeoPt с помощью Google AppEngine BulkLoader YAML - PullRequest
2 голосов
/ 28 июля 2010

Я загружаю данные из CSV-файла со столбцом GeoPt.У меня есть данные столбца GeoPt в кавычках, таких как: SomeData, "54.321, -123.456", MoreData

Мой файл bulkloader.yaml имеет следующую запись: - свойство: местоположение external_name: LOCATION # Тип: GeoPt Stats: 1 свойств этого типа в этом виде.

Когда я делаю выгрузку и захожу в просмотрщик DataStore, я вижу, что местоположение было загружено в виде строки вместо GeoPt.Я не уверен, каким будет правильный способ импорта.Возможно, это требует import_transform?

Ответы [ 2 ]

4 голосов
/ 13 ноября 2010

Создайте файл uploadutil.py и добавьте в него этот метод:

def geo_converter(geo_str):
    if geo_str:
        lat, lng = geo_str.split(',')
        return db.GeoPt(lat=float(lat), lon=float(lng))
    return None

Затем добавьте его в bulkloader.yaml:

Добавить импорт для загрузки:

- import: uploadutil

И добавить свойство:

- property: location
      external_name: LOCATION
      import_transform: uploadutil.geo_converter
3 голосов
/ 17 июня 2011

Если вы получаете NameError global name 'db' is not defined при загрузке данных, добавьте строку

 from google.appengine.ext import db

в файл uploadutil.py

...