2011-08-03 60 views
0

有沒有簡單的方法將.csv文件加載到Simplegeo存儲中?我沒有很好的編碼技巧,我試圖讓事情成立,所以我可以讓自由職業者爲我的應用程序創建一些地圖。如果有人有現有的代碼來做到這一點,我可以弄清楚如何讓它適用於我的情況。我可以將.csv加載到Simplegeo存儲中嗎?

+0

您忘記提及您嘗試使用哪種語言在...中忽略這個 –

回答

0

我剛剛瀏覽了api。下面是Python的一個基本的例子

假定csv格式:

layer, id, lat, lon 

蟒蛇

from simplegeo.models import Record, Client 

lines = open('file.csv').split('\n') 
client = Client('your-oauth-token', 'your-oauth-secret') 

for line in lines: 
    parts = line.split(',') 
    if len(parts) == 4: 
     layer = parts[0].strip() 
     id = parts[1].strip() 
     lat = float(parts[2].strip()) 
     lon = float(parts[3].strip()) 
     r = Record(layer, id, lat, lon) 
     client.storage.add_record(r) 

多一點挖後,我發現在其網站上Python的例子爲此確切的目的 https://simplegeo.com/docs/tutorials/general-hackery#how-import-csv-file-simplegeo

import csv 
import simplegeo 

OAUTH_TOKEN = '[insert_oauth_token_here]' 
OAUTH_SECRET = '[insert_oauth_secret_here]' 
CSV_FILE = '[insert_csv_file_here]' 
LAYER = '[insert_layer_name_here]' 

client = simplegeo.Client(OAUTH_TOKEN, OAUTH_SECRET) 

def insert(data): 
    layer = LAYER 
    id=data.pop("id") 
    lat=data.pop("latitude") 
    lon=data.pop("longitude") 
    # Grab more columns if you wish 
    record = simplegeo.Record(layer,id,lat,lon,**data) 
    client.add_record(record) 

r = csv.DictReader(open(CSV_FILE, mode='U')) 
for l in r: 
    insert(l) 
相關問題