def upload_data(cartodb_table, data, adapter=None): cl = CartoDBAPIKey(cartodb_table.apiKey, cartodb_table.domain) adapted = adapter(data) values = [] for values_row in adapted['values']: values.append(','.join([sql_str(v) for v in values_row])) sql = 'INSERT INTO %s (%s) VALUES %s' % ( cartodb_table.table, ','.join(adapted['column_names']), ','.join(['(%s)' % v for v in values]), ) try: cl.sql(sql) except CartoDBException as e: traceback.print_exc() print('Exception while inserting:', e)
def most_recent_upload(cartodb_table, socrata_resource): """Get the most recent upload by table key""" cl = CartoDBAPIKey(cartodb_table.apiKey, cartodb_table.domain) sql = 'SELECT * FROM {} ORDER BY {} DESC LIMIT 1'.format( cartodb_table.table, socrata_resource.unique_key ) try: return cl.sql(sql)['rows'][0] except CartoDBException as e: traceback.print_exc() print('Exception while inserting:', e) except IndexError: return None