import os,time,isodate,json,pymysql
def cursor(call,*data):
conn=pymysql.connect(host='127.0.0.1',user='root',password='123456',db='test',charset='utf8',cursorclass=pymysql.cursors.DictCursor)
try:
with conn.cursor() as cursor:
call(cursor,data)
conn.commit();
finally:
conn.close()
datadir="C:/Users/86135/Documents/test"#数据文件目录
database="test"
datafiles=os.listdir(datadir)
def exec(cursor,data):
num=len(datafiles)
for datafile in datafiles:
print(datafile,num,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
num-=1
sp=datafile.split('.')
if(len(sp)!=2 or sp[1]!='json'):
print("文件格式错误",datafile);
continue;
f=open(datadir+"/"+datafile,'r')
data=json.loads(f.read())
f.close()
timeFieldIndex=[]
for i in range(len(data["fields"])):
if(data["fields"][i].get("type")=="datetime"):
timeFieldIndex.append(i)
sql="insert into "+database+".`"+sp[0]+"`("+str.join(',',map(lambda x:"`"+x["name"]+"`",data["fields"]))+")values("+str.join(",",map(lambda x:"%s",data["fields"]))+")"
for row in data["data"]:
for i in timeFieldIndex:
if row[i] is not None:
row[i]=isodate.parse_datetime(row[i])
cursor.execute(sql,row)
cursor(exec);
print("数据导入mysql",time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
数据格式{"fields":[{"name":"id"}],//表字段
"data":[[1]]//表数据
}