Réponses:
L'écriture de données via l'API est assez simple. Voici le plus basique,
Supposons que nous ayons déjà deux variables, la façon de les obtenir dépend de vous,username = 'cartodb-user-name'
apikey = 'MY-CARTODB-API-KEY'
Ensuite, permet de créer une instruction INSERT à utiliser
insert = "INSERT INTO my_table_name (the_geom, measure) VALUES (CDB_LatLng(43, -120), 22.0)"
Créez le point de terminaison URL pour notre API de compte
url = "https://%s.cartodb.com/api/v1/sql" % username
Créer un objet contenant les paramètres de notre demande
params = {
'api_key' : apikey, # our account apikey, don't share!
'q' : insert # our insert statement above
}
Envoyer la demande en utilisant urllib2
req = urllib2.Request(url, urllib.urlencode(params))
response = urllib2.urlopen(req)
import urllib
import urllib2
Voici un exemple de stratégie d'insertion à plusieurs lignes (3). J'utilise un tableau pour stocker initialement toutes mes valeurs de ligne. Chaque valeur de ligne est une liste séparée par des virgules, entourée de parenthèses et stockée dans le tableau,
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)
En utilisant cela, j'ai encapsulé les 3 lignes dans une seule http
demande. Il fonctionne plus rapidement tout autour et est fortement recommandé. D'après une expérience personnelle, 100-250 lignes à la fois fonctionnent très bien.
Il existe une bibliothèque python pour CartoDB ... Je pense que cela fonctionnerait avec l' API SQL .
Voici un exemple de script que j'ai écrit il y a quelque temps. Il implémente essentiellement ce que andrewxhill a écrit ci-dessus, mais utilise la bibliothèque "requests" au lieu de urllib.
Il regroupe les insertions pour en faire 1000 à la fois, puis utilise l'API pour effectuer les insertions.
Le script parcourt un ensemble de fichiers Lidar dans des sous-répertoires et insère les cadres de délimitation des fichiers lidar dans CartoDB.