回答:
APIを介したデータの書き込みは非常に簡単です。ここが最も基本的です
すでに2つの変数があるとします。それらをどのように取得するかはあなた次第です。username = 'cartodb-user-name'
apikey = 'MY-CARTODB-API-KEY'
次に、使用するINSERTステートメントを作成しましょう
insert = "INSERT INTO my_table_name (the_geom, measure) VALUES (CDB_LatLng(43, -120), 22.0)"
アカウントAPIのURLエンドポイントを作成します
url = "https://%s.cartodb.com/api/v1/sql" % username
リクエストのパラメータを含むオブジェクトを作成します
params = {
'api_key' : apikey, # our account apikey, don't share!
'q' : insert # our insert statement above
}
urllib2を使用してリクエストを送信します
req = urllib2.Request(url, urllib.urlencode(params))
response = urllib2.urlopen(req)
import urllib
import urllib2
これは、複数行(3)挿入戦略の例です。配列を使用して、最初にすべての行の値を格納します。各行の値は、コンマで区切られたリストであり、括弧で囲まれて配列に格納されます。
rows = [
"(CDB_LatLng(10, 10), 1.0)",
"(CDB_LatLng(20, 12), 1.4)",
"(CDB_LatLng(30, 14), 1.2)"
]
insert = "INSERT INTO my_table_name (the_geom, measure) (VALUES %s)" % ','.join(rows)
これを使用して、3つの行すべてを1つのhttp
要求にラップしました。全体的に高速に動作するため、強くお勧めします。個人的な経験から、一度に100〜250行は非常にうまく機能します。
CartoDB用のPythonライブラリがあります... SQL APIで動作すると思います。
これは私がしばらく前に書いたスクリプトの例です。それは基本的にandrewxhillが上に書いたものを実装しますが、urllibの代わりに "requests"ライブラリを使用します。
挿入をバッチ処理して一度に1000回実行し、APIを使用して挿入を実行します。
スクリプトは、サブディレクトリ内の一連のLidarファイルをループし、Lidarファイルの境界ボックスをCartoDBに挿入します。