pythoncsv数据类型_python – 从CSV文件行中的值确定数据类型

我写了一个Python程序,它读取CSV文件并将它们作为MySQL的插入语句吐出.现在我想要一个能够使用列标题为每个新表格形成CREATE语句的附加程序.由于MySQL格式化,我需要能够确定列中每个值的类型,类似于shell中的type()函数.我的想法是在列标题之后读取CSV文件的第二行,并拉出由a分隔的值(即每列中的一个值).然后获取该值并通过type()函数运行它并返回int,str,float等.稍后我将使用type()返回的值执行一些if语句,以将正确的数据类型附加到结尾处. CREATE语句的列标题.

到目前为止,我已经设法从第一行的编译列表中拉出每个值并打印它所在的类型().唯一的问题是列表中的所有内容都被视为字符串,因此唯一的返回值是< class'str'>.如果我知道它是什么类型的值,我将能够从字符串转换为正确的类型,但这会破坏程序的整个目的.我确信有一种更好的方法可以将第一行作为字符串列表吐出,但我不知道该怎么做.以下是我到目前为止以及如何继续的想法:

import csv, os

path = 'C:/Users/user/Desktop/file/test/'

for file in os.listdir(path):

if file.endswith('.csv'):

with open(path +file) as inFile:

with open(path + file[:-4] + ".txt", "w") as outFile:

csvFile = csv.reader(inFile)

columnHeader = next(csvFile)

firstRow = next(csvFile)

i = 0

for value in firstRow:

valueType = (type(value))

for header in columnHeader:

if valueType = class 'str': # Don't think this formatting is correct

columnHeader.append(' varchar (255)')

if valueType = class 'int':

columnHeader.append(' int')

if valueType = class 'float':

columnHeader.append(' float')

我也研究过使用this库,但我更喜欢自己做.

我选择的方法是否合理/可行?你有没有更好的方法来做到这一点?如果是这样,怎么样?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值