Python:CSV转数据库Insert语句
#可实现字符串类型和数值型两种
内联代码片
。
#龙龙
#本文中的csv放在和python程序同一目录下
import pandas as pd
def colomnJudgeType(count,intColumn, columnSize):
#已排除了用户输入的列序号超长的情况
if max(intColumn) > columnSize:
return 666
if count in intColumn:
return 1
else:
return 0
def save(filename, contents):
fh = open(filename, 'w', encoding='utf-8')
fh.write(contents)
fh.close()
def csvToMysql(address,csvName,notStrColomn):
#默认全部转成字符串
notStrColomnList = notStrColomn.split('#')
notStrColomnListInt = []
for i in notStrColomnList:
tempInt = int(i)
notStrColomnListInt.append(tempInt)
print(notStrColomnListInt)
df = pd.read_csv(csvName+'.csv',encoding="gb2312")
columnSize = df.columns.size
aa = ''
cc = ''
count = 0
for index, row in df.iterrows():
bb = '('
while (count < columnSize):
flag = 99
flag = colomnJudgeType(count+1, notStrColomnListInt, columnSize)
if flag == 0:
bb = bb +"'"+str(row[count]) +"'"+ ','
elif flag ==1 :
bb = bb + str(row[count]) + ','
else:
print('您输入的值超出范围')
return
count = count + 1
count = 0
bb = bb[:-1]
bb = bb + "),"
print(bb)
aa = aa + str(bb)
cc = aa.replace('nan','')
address = address + csvName+'.txt'
print(address)
save(address, cc[:-1])
address = 'C:/Users/Administrator/Desktop'
#第一个为保存地址,默认为桌面,第二个csv名称和转成的txt名称,第三个为数值型的列(默认为全是字符型,用#分隔,第一列为1而不是0)
csvToMysql(address,'llcategorytree','5#6')