2010-07-28 25 views
2

我從csv文件上傳數據,並在其中包含GeoPt列。我有GeoPt列數據在這樣的行情:SomeData, 「54.321,-123.456」,MOREDATA使用Google AppEngine BulkLoader導入GeoPt數據YAML

我bulkloader.yaml文件中有這樣的條目: - 屬性:位置 EXTERNAL_NAME:LOCATION #類型:GeoPt統計:這種類型的1個屬性。

當我進行上傳並轉到DataStore查看器時,我看到該位置已被上傳爲字符串而不是GeoPt。我不確定導入它的正確方法是什麼。也許它需要一個import_transform?

回答

4

創建一個uploadutil.py文件,並在添加此方法:對於uploadutil

加進口:

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

如果你NameError global name 'db' is not defined同時上傳數據,加線

from google.appengine.ext import db 

到文件uploadutil.py

相關問題