gpt4 book ai didi

mysql - 如何为单元格中找到的每个新值增加id

转载 作者:行者123 更新时间:2023-11-29 15:46:15 24 4
gpt4 key购买 nike

我正在构建一个python代码以读取.csv文件,将值并将其放入mysql数据库。在此特定示例中,列中只有2个值,即“ a”或“ b”。 python第一次看到'a'时,会将值添加到mysql中并为其指定ID。下次遇到“ a”时,应跳过。同样适用于值“ b”。

问题是我的代码从.csv的第一行将'a'值导入到数据库中,但没有导入'b'值,我认为该值仅在第10行左右开始。

遍历.csv

with open('test.csv', 'r') as file:
csv_reader = csv.reader(file)
for line in csv_reader:
value_from_csv = (line[6])


建立表格

CREATE TABLE `letters` (
`id` INT NOT NULL AUTO_INCREMENT,
`letter` VARCHAR(255),
PRIMARY KEY (`id`),
UNIQUE INDEX `letter_a_or_b` (`letter_a_or_b`)
)
COLLATE='latin1_swedish_ci'
;


插入mysql

cur = connection.cursor()
cur.execute('''INSERT IGNORE INTO letters (letter_a_or_b) VALUES (%s)''', (value_from_csv,))
connection.commit()
cur.close()
connection.close()


我在运行此命令时没有任何错误,它只是运行。只是没有期望的id(1)-'a'和id(2)-'b'我得到了id(1)-'a'就是这样。

如果有帮助,我将HeidiSQL用作mysql管理工具。

最佳答案

在第二个块中,您将继续覆盖value_from_csv,因此您只需在表中插入最后一个。

一种方法是将值累加到列表中,然后遍历该列表并将其插入数据库:

value_from_csv = []
with open('test.csv', 'r') as file:
csv_reader = csv.reader(file)
for line in csv_reader:
value_from_csv.append(line[6])

cur = connection.cursor()
for value in value_from_csv:
cur.execute('''INSERT IGNORE INTO letters (letter_a_or_b) VALUES (%s)''', (value,))
connection.commit()
cur.close()
connection.close()


请注意,如果您知道CSV中只有两个值,则可以优化此过程,只需检查CSV是否同时具有这两个值或只有一个。

关于mysql - 如何为单元格中找到的每个新值增加id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57011462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com