从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
。此外,如果您想插入数值而不是字符串,只需删除查询字符串中的双引号 "..."
。
我需要读取 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
。此外,如果您想插入数值而不是字符串,只需删除查询字符串中的双引号 "..."
。