python读取csv文件内容写入到sqlite3
时间: 2023-10-02 12:13:28 浏览: 75
以下是一个示例代码,可以读取CSV文件并将其写入SQLite3数据库中:
```python
import csv
import sqlite3
# 打开CSV文件
with open('data.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
# 连接SQLite3数据库
conn = sqlite3.connect('test.db')
c = conn.cursor()
# 创建表格
c.execute('''CREATE TABLE IF NOT EXISTS data
(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
# 将数据插入表格
for row in csv_reader:
c.execute("INSERT INTO data (name, age) VALUES (?, ?)", (row[0], row[1]))
# 提交更改并关闭连接
conn.commit()
conn.close()
```
在此示例中,我们将CSV文件中的第一列作为“name”字段,第二列作为“age”字段,并将它们插入到名为“data”的SQLite3表中。请注意,我们还在代码中创建了一个SQLite3数据库,并在其中创建了一个名为“test.db”的文件。
相关问题
Python如何将csv写入sqlite
可以使用Python的sqlite3模块来将csv文件写入sqlite数据库。具体步骤如下:
1. 首先,需要导入sqlite3模块,并连接到sqlite数据库。
2. 然后,使用Python的csv模块读取csv文件。
3. 接着,使用sqlite3模块的`execute()`方法,向数据库中写入数据。
4. 最后,使用sqlite3模块的`commit()`方法,提交事务。
下面是一个示例代码:
```python
import sqlite3
import csv
# 连接到sqlite数据库
conn = sqlite3.connect("database.db")
# 读取csv文件
with open("data.csv", "r") as f:
reader = csv.reader(f)
# 忽略第一行(标题行)
next(reader)
# 遍历每一行
for row in reader:
# 向数据库中写入数据
conn.execute("INSERT INTO table_name VALUES (?, ?, ?)", row)
# 提交事务
conn.commit()
# 关闭连接
conn.close()
```
在上面的代码中,我们假设csv文件的第一行是标题行,并使用`next()`函数忽略它。然后,我们使用`for`循环遍历每一行,并使用`execute()`方法向数据库中写入数据。最后,我们使用`commit()`方法提交事务,并使用`close()`方法关闭数据库连接。
希望这能帮到你!
用python读取sqlite数据库文件找到id相同的导出为csv文件
可以使用Python内置的sqlite3模块读取SQLite数据库文件,并使用csv模块将数据导出为CSV格式的文件。下面是一个示例代码:
```python
import sqlite3
import csv
# 连接到SQLite数据库文件
conn = sqlite3.connect('example.db')
cur = conn.cursor()
# 查询id为1的数据
cur.execute("SELECT * FROM table_name WHERE id=?", (1,))
data = cur.fetchall()
# 将数据导出为CSV文件
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['id', 'name', 'age']) # 写入表头
writer.writerows(data) # 写入数据
# 关闭连接
cur.close()
conn.close()
```
需要将代码中的`example.db`替换为实际的SQLite数据库文件名,将`table_name`替换为实际的表名。如果需要查询多条数据,可以使用`cur.execute("SELECT * FROM table_name WHERE id IN (?, ?, ?)", (1, 2, 3))`,其中`(1, 2, 3)`为要查询的id列表。