7 votos

La actualización de la Tabla de Fusión de capas en archivos csv usando python

Estoy tratando de usar Python para tomar csv archivos y el uso de ellos para la actualización (o sustituir) las tablas en Fusion Tables. He encontrado el "Python biblioteca de cliente para la Fusión de Tablas" en gafas de sitio " y descargado, así como las dos dependencias necesarias:

He instalado los tres en python 2.7 como se requiere y sólo parece que no puede averiguar cómo llegar realmente a trabajar. Incluso he tratado de conseguir sus muestras para trabajar con ninguna suerte. En este punto, quisiera decir que no soy programador y no sé python. Sin embargo, puedo comprender lo suficiente (y de ver y modificar el código) bastante bien y aunque utiliza python para escribir los guiones de que la exportación de SDE a los shapefiles, a continuación, convertir los archivos shapefiles a KML mediante GDAL y, a continuación, convertir el archivo KML a CSV utilizando elementtree.

¿Alguien sabe de un buen recurso para mirar para ayuda en hacer lo que estoy tratando de hacer? Todo lo que puede encontrar en línea es un par de personas diciendo que lo hizo, sin ninguna explicación, y un montón de enlaces para el código de google (que no tiene documentación)

Gracias de antemano, Adam

17voto

Marksu Teoren Puntos 33

Con el fin de subir csv para FusionTables, usted necesita para asegurarse de que autenticarse primero. Veo que has incluido las dependencias para OAuth, pero si estás tratando de tener un script para hacer una simple carga, que iba a ser más fácil de usar ClientLogin (y usted no necesita las dependencias). El esqueleto de un código debe ser algo como esto (adaptado de el código de ejemplo en la biblioteca de python que se hace referencia):

from authorization.clientlogin import ClientLogin
from sql.sqlbuilder import SQL
import ftclient
from fileimport.fileimporter import CSVImporter

token = ClientLogin().authorize(username, password) #Replace with your username and password (or prompt for them would be more secure)
ft_client = ftclient.ClientLoginFTClient(token) #ft_client needs to be used from here on out to make any calls to the FusionTables SQL API

#If you want to CREATE a table from the csv...
tableid = int(CSVImporter(ft_client).importFile("data.csv")) #Replace with your csv data source (or prompt for the location would be less hard-coded)
print tableid #This will print out the ID of your new table, but the table should also show up in Google Docs for the username you used to authenticate.

Si desea agregar filas a una existente FusionTable, que va a ser más complicado. Probablemente llevaría a analizar el CSV con csv.DictReader o algo así y luego iterar sobre que y subir las filas de usar algo como...

#update row using dictionary of values
print ft_client.query(SQL().update(tableid, cols={'strings': 'mystring3'}, row_id=rowid))
print ft_client.query(SQL().select(tableid))

...para cada fila.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X