要解决“扁平文件的Python SQL自动化处理ETL脚本”问题,可以按照以下步骤进行:
import csv
import sqlite3
def read_flat_file(file_path):
with open(file_path, 'r') as file:
rows = csv.reader(file)
headers = next(rows)
data = [row for row in rows]
return headers, data
def create_table(headers, table_name, cursor):
columns = ', '.join(headers)
create_table_query = f"CREATE TABLE IF NOT EXISTS {table_name} ({columns})"
cursor.execute(create_table_query)
def insert_data(data, table_name, cursor):
placeholders = ', '.join(['?'] * len(data[0]))
insert_query = f"INSERT INTO {table_name} VALUES ({placeholders})"
cursor.executemany(insert_query, data)
def execute_query(query, cursor):
cursor.execute(query)
result = cursor.fetchall()
return result
def main(file_path, table_name, db_name):
headers, data = read_flat_file(file_path)
connection = sqlite3.connect(db_name)
cursor = connection.cursor()
create_table(headers, table_name, cursor)
insert_data(data, table_name, cursor)
connection.commit()
connection.close()
if __name__ == '__main__':
file_path = 'path/to/flat_file.csv'
table_name = 'my_table'
db_name = 'my_database.db'
main(file_path, table_name, db_name)
以上代码示例了一个基本的扁平文件的Python SQL自动化处理ETL脚本。你可以根据需要进行修改和扩展。请确保你已安装所需的库(例如,csv和sqlite3)。