예제 #1
0
def table_from_csv(table_name=None, column_names=None):
    standardized_column_names = []
    for column_name in column_names:
        if column_name.lower() not in ['', 'date']:
            standardized_column_names.append(
                clean_data.standardize_column_name(column_name, table_name))

    if len(standardized_column_names) < 1:
        return

    try:
        # probably a bad way to format, but it's a known data source
        pg_cursor.execute(""" DROP TABLE IF EXISTS {table_name};
                CREATE TABLE {table_name} (
                    "DATE" date not null,
                    {data_columns}
                );
            """.format(table_name=table_name,
                       data_columns=reduce(
                           lambda column_list, column: column_list + column, [
                               '{} float,\n'.format(column_name)
                               for column_name in standardized_column_names
                           ])[0:-2]))

    except Exception as e:
        print(table_name + ' Error: ' + str(e))
def table_from_csv(table_name=None, column_names=None):
    standardized_column_names = []
    for column_name in column_names:
        if column_name.lower() not in ['', 'date']:
            standardized_column_names.append(clean_data.standardize_column_name(column_name, table_name))

    if len(standardized_column_names) < 1:
        return

    try:
        # probably a bad way to format, but it's a known data source 
        pg_cursor.execute(
            """ DROP TABLE IF EXISTS {table_name};
                CREATE TABLE {table_name} (
                    "DATE" date not null,
                    {data_columns}
                );
            """.format(
                table_name=table_name,
                data_columns=reduce(
                    lambda column_list, column: column_list + column,
                    [
                        '{} float,\n'.format(column_name)
                        for column_name in standardized_column_names
                    ]
                )[0:-2]
            )
        )

    except Exception as e:
        print(table_name + ' Error: ' + str(e))
예제 #3
0
def populate_row(table_name=None, row=None):
    metric_values = []
    metric_date = None
    for key, value in row.items():
        cleaned_key = clean_data.standardize_column_name(key, table_name)
        cleaned_value = clean_data.standardize_value(value)
        if str(cleaned_key) == '"DATE"':
            metric_date = cleaned_value
        elif cleaned_key is not None and cleaned_value is not None and cleaned_value != "NULL":
            metric_values.append({
                'release_date': cleaned_key,
                'value': cleaned_value
            })

    metric_values = sorted(metric_values,
                           key=lambda release: release['release_date'])
    final_value = None
    value_finalization_index = None
    for index, value_dict in enumerate(reversed(metric_values)):
        release_value = value_dict['value']
        if final_value is None:
            final_value = release_value

        if release_value != final_value:
            break

        value_finalization_index = index

    if value_finalization_index is not None:
        metric_values = metric_values[:-(value_finalization_index)]

    if len(metric_values) > 0:
        try:
            # probably a bad way to format, but it's a known data source
            pg_cursor.execute(""" INSERT INTO {table_name}
                        (metric_date, metric_values, initial_release_date, final_release_date)
                    VALUES
                        ({metric_date}, {metric_values}, {initial_release_date}, {final_release_date});
                """.format(table_name=table_name,
                           metric_date=metric_date,
                           metric_values=Json(metric_values),
                           initial_release_date="'" +
                           metric_values[0]['release_date'][1:] + "'::DATE",
                           final_release_date="'" +
                           metric_values[-1]['release_date'][1:] + "'::DATE"))

        except Exception as e:
            print(table_name + ' Error: ' + str(e))
예제 #4
0
def populate_row(table_name=None, row=None):
    cleaned_row = OrderedDict()

    for key, value in row.items():
        cleaned_row[clean_data.standardize_column_name(
            key, table_name)] = clean_data.standardize_value(value)

    if cleaned_row.get(None):
        cleaned_row.pop(None)

    if len(cleaned_row) > 0:
        try:
            # probably a bad way to format, but it's a known data source
            pg_cursor.execute(""" INSERT INTO {table_name} ({columns})
                    VALUES ({vals});
                """.format(table_name=table_name,
                           columns=clean_data.string_list(cleaned_row.keys()),
                           vals=clean_data.string_list(cleaned_row.values())))

        except Exception as e:
            print(table_name + ' Error: ' + str(e))
def populate_row(table_name=None, row=None):
    cleaned_row = OrderedDict()

    for key, value in row.items():
        cleaned_row[clean_data.standardize_column_name(key, table_name)] = clean_data.standardize_value(value)

    if cleaned_row.get(None):
        cleaned_row.pop(None)

    if len(cleaned_row) > 0:
        try:
            # probably a bad way to format, but it's a known data source 
            pg_cursor.execute(
                """ INSERT INTO {table_name} ({columns})
                    VALUES ({vals});
                """.format(
                    table_name=table_name,
                    columns=clean_data.string_list(cleaned_row.keys()),
                    vals=clean_data.string_list(cleaned_row.values())
                )
            )

        except Exception as e:
            print(table_name + ' Error: ' + str(e))