格式为csv文件。

x1  0  1  3  6
x2  4  9  4  5
x3  8  6  7  1


我想将其插入数据库,并在以下数据中添加三个字段“ x1”,“ x2”,“ x3”。

x1|x2|x3
0|4|8
1|9|6
3|10|7
6|5|1


我认为我读取csv文件时必须转换数据。

import sqlite3
db="test.sqlite"
con = sqlite3.connect(db)
cur = con.cursor()
dat=open("data","r")
for id,line in enumerate(dat.readlines()):
    ?

con.executemany('insert into test values(?,?,?)', value)


如何在这里获得正确的价值格式?

最佳答案

zip(*rows)转置数据,删除第一行,并通过.executemany()调用插入:

import csv
import sqlite3

with open('data', 'r', newline='') as infh:
    rows = list(csv.reader(infh))
    columns = zip(*rows)
    next(columns, None)  # skip the first column

    with sqlite3.connect('test.sqlite') as conn:
        cursor = conn.cursor()
        cursor.executemany('insert into test values (?, ?, ?)', columns)

关于python - 如何将csv文件中的数据插入sqlite数据库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22559639/

10-11 03:23
查看更多