从csv文件读取时如何更改列的数据类型

how to change datatype of a column while reading from a csv file

我需要读取 csv 并在 mysql 数据库上执行插入操作。 我被告知写在 python 但不使用 pandas。 但是在将这些传递给 db insert 时,我收到了与数据类型相关的错误。 通过从 csv 读取,我将所有列作为字符串获取,而在我的 dbtable 中,某些列的数据类型为 float 和 varchar mixe3d。 所以在 对于 csv_data 中的行:

    cursor.execute('INSERT INTO testcsv(names, \
          classes, marks )' \
          'VALUES("%s", "%s", "%s")', 
          row)

发生类型不匹配。 所以请帮助我
csv_data = csv.reader(打开('D:/satya.csv'))

我可以添加一些条件或其他内容,以便我的第一列将重命名为字符串,而其他两列将变为浮点型。 或者在阅读之后有没有办法读取一列并更改其数据类型。然后将其传递给具有相同数据类型的数据库。 这样我就可以写

cursor.execute('插入 testcsv(名称, \ 类, 标记 )' \ 'VALUES("%s", "%s", "%s")' 请帮忙。

您的代码几乎没问题,缺少的是正确的格式。要使用 % 格式化字符串,您实际上需要使用 % 运算符:

cursor.execute(
    'INSERT INTO testcsv(names, classes, marks) \
    VALUES("%s", "%s", "%s")' % row
)

假设您的 row 是 3 元素 tuple。此外,如果您想插入数值而不是字符串,只需删除查询字符串中的双引号 "..."