要使用Python和sqlite3从CSV中只更新数据库中的两列,而不接触其他列中的数据,可以按照以下步骤进行操作:
import csv
import sqlite3
conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS your_table (
column1_type column1_name,
column2_type column2_name,
column3_type column3_name,
...
)''')
其中,column1_type
、column1_name
、column2_type
、column2_name
等需要根据实际情况进行替换,表示表格的列名和数据类型。
with open('your_csv_file.csv', 'r') as file:
csv_data = csv.reader(file)
next(csv_data) # 跳过CSV文件的标题行
for row in csv_data:
cursor.execute('''UPDATE your_table
SET column1_name = ?,
column2_name = ?
WHERE primary_key_column = ?''',
(row[column1_index], row[column2_index], row[primary_key_index]))
其中,your_csv_file.csv
是CSV文件的路径,column1_name
和column2_name
是要更新的两列的列名,primary_key_column
是数据库表格中的主键列名,column1_index
、column2_index
和primary_key_index
是对应列的索引。
conn.commit()
conn.close()
这样,你就可以使用Python和sqlite3从CSV中只更新数据库中的两列,而不接触其他列中的数据。请注意,以上代码只是一个示例,你需要根据实际情况进行适当的修改和调整。
领取专属 10元无门槛券
手把手带您无忧上云