如何使用Python将多列表数据按对应结构写入数据库
合并列表数据并写入数据库的实现方法
步骤1:合并三个列表的对应数据
先把三个列表中同一位置的字典合并,得到包含完整字段的结构化数据:
frame1 = [{'CAR': 'MAZDA'}, {'CAR': 'Ferrari'}, {'CAR': 'BMW'}] frame2 = [{'country':'India'}, {'country':'Spain'}, {'country':'Mexico'}] frame3 = [{'year': '2022'}, {'year': '2021'}, {'year': '2020'}] # 合并对应位置的字典 merged_data = [] for car, country, year in zip(frame1, frame2, frame3): merged = {**car, **country, **year} merged_data.append(merged)
步骤2:写入数据库(以SQLite为例)
用Python内置的sqlite3模块创建表并插入合并后的数据:
import sqlite3 # 连接数据库(文件不存在则自动创建) conn = sqlite3.connect('cars_database.db') cursor = conn.cursor() # 创建目标表 cursor.execute(''' CREATE TABLE IF NOT EXISTS vehicle_info ( id INTEGER PRIMARY KEY AUTOINCREMENT, CAR TEXT NOT NULL, country TEXT NOT NULL, year TEXT NOT NULL ) ''') # 批量插入数据 insert_sql = 'INSERT INTO vehicle_info (CAR, country, year) VALUES (:CAR, :country, :year)' cursor.executemany(insert_sql, merged_data) # 提交更改并关闭连接 conn.commit() conn.close()
验证数据是否正确写入
执行查询语句确认结果:
conn = sqlite3.connect('cars_database.db') cursor = conn.cursor() cursor.execute('SELECT * FROM vehicle_info') results = cursor.fetchall() # 格式化打印查询结果 print("id | CAR | country | year") print("-------------------------------") for row in results: print(f"{row[0]} | {row[1]:<8} | {row[2]:<7} | {row[3]}") conn.close()
执行后输出:
id | CAR | country | year ------------------------------- 1 | MAZDA | India | 2022 2 | Ferrari | Spain | 2021 3 | BMW | Mexico | 2020
内容的提问来源于stack exchange,提问作者Krya
相关产品推荐
相关产品推荐

