sqlite 在python上向数据库写入列表

yi0zb3m4  于 2023-04-21  发布在  SQLite
关注(0)|答案(2)|浏览(168)

我有3个列表,其中包含以下数据:

frame1 = [{'CAR': 'MAZDA'}, {'CAR': 'Ferrari'}, {'CAR': 'BMW'}]

frame2 = [{'country':'India'}, {'country':'Spain'}, {'country':'Mexico'}]

frame3 = [{'year': '2022'}, {'year': '2021'}, {'year': '2020'}]

我想将列表写入数据库,格式如下:

CAR   | country | year
______________________________
1 | MAZDA |  India  | 2022
2 |Ferrari|  Spain  | 2021
3 |  BMW  |  Mexico | 2020
91zkwejq

91zkwejq1#

使用zip()并行循环遍历列表,然后将字典元素组合成一个元组,并使用executemany()将它们全部插入表中。

sql = 'INSERT INTO tableName (car, country, year) VALUES (?, ?, ?)'
cursor.executemany(sql, 
    ((v1['CAR'], v2['country'], v3['year']) 
     for v1, v2, v3 in zip(frame1, frame2, frame3))
)
s2j5cfk0

s2j5cfk02#

你的问题似乎太模糊了(至少对我来说是这样)。
但是作为一个起点,对于pandas,您可以使用concat/to_sql

import sqlite3
import pandas as pd

with sqlite3.connect("foo.db") as conn:
    (pd.concat([pd.DataFrame(fr) for fr in [frame1, frame2, frame3]], axis=1)
         .to_sql("table", conn, if_exists="fail", index=False)) #adjust the params here

输出:

相关问题