python 如何生成list python 如何生成百万条数据 |
您所在的位置:网站首页 › sqlyog生成sql脚本 › python 如何生成list python 如何生成百万条数据 |
在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据。如果一条条的插入数据库或者一条条的创建数据,效率未免有点低。如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家介绍一种方法,很简单的也很实用。思路是用python代码写一段小程序,生成一定数量的SQL语句,再把这些SQL语句拷贝黏贴到数据库工具执行SQL即可。 假如有个联系人的学生表student,其表结构为姓名name、学校school、电话telphone、邮箱email。 以Mysq为例子,sql语句如下: INSERT INTO student(name , shool , telephone , email) VALUES(“小明” ,”万航渡路小学” , 13810001000 ,”[email protected]”); 通过python脚本批量生成1000条待插入的SQL语句 # -*- coding: utf-8 -*- __author__ = '肥猫与猪宝宝' f = open('student.txt', 'w') for i in range(1, 1001): str_i = str(i) name = "张三" + str_i school = "万航渡路小学" telephone = 13810000000 + i email = "张三" + str_i + "@gmail.com" sql = 'INSERT INTO student(name , school , telephone , email) VALUES ("'+name+'" , "'+school+'" , '+str(telephone)+' , "'+email+'");' f.write(sql) f.write("\n") f.close()运行下,在当前工作目录,生成student.txt。 分析下程序 f = open('student.txt', 'w')用写的方式打开student.txt这个文件,并赋值给f for i in range(1 , 1001)for循环,range代表范围但是不包括1001 sql中的“'+name’”就是拼接,让变量被插入sql f. write方法写入( )括号内的内容 f.write("\n")就是写入的内容换行 f.close()调用close方法关闭文件,有打开就要有关闭。 在student.txt文件中选中全部sql去mysql工具中执行即可,常见的mysql工具有sqlyog、navicat都是很好用的。 对于数据库插入日期来说,"2020-08-26" 双引号也可以插入,代码如下: # -*- coding: utf-8 -*- __author__ = '肥猫与猪宝宝' f = open('student.txt', 'w') for i in range(1002, 5001): str_i = str(i) id = "1000" + str_i knight_id = "1921061191" + str_i step = 1000 date = '"2020-08-26"' is_deleted = 0 created_at = '"2020-08-26 15:42:33"' updated_at = '"2020-08-26 15:42:33"' ezone_shard_info = "NULL" drc_check_time = '"2020-08-26 15:42:33"' sql = 'INSERT INTO `tb_knight_daily_donate_step`(id,knight_id,step,date,is_deleted,created_at,updated_at,ezone_shard_info,drc_check_time) VALUES (' + str(id) + ' , ' + str(knight_id) + ' ,'+str(step)+' , '+date+' , '+str(is_deleted)+' , '+created_at+' , '+updated_at+' , '+ezone_shard_info+' , '+drc_check_time+');' f.write(sql) f.write("\n") f.close()再来个例子: # -*- coding: utf-8 -*- __author__ = '肥猫与猪宝宝' f = open('student.txt', 'w') for i in range(1, 2000): str_i = str(i) id = "1000" + str_i knight_id = "1921061191" + str_i trace_uuid = '1dfaf46a-920c-4a1e-8391-22633af90' + str_i out_certify_id = "'e164ba0c8dfe31beec12f6de265f3980'" out_scene_type = 1 status = 7 name = '"审核测"' identity = '"34222219930821003X"' hash = '"9cdbaffc6788bb24406e0b4e6456c5c9jpeg"' init_device_id = '"YDSiZVV1lZ0DACrsh+HMNY9N"' init_latitude = "121.380553" init_longitude = "31.231648" complete_device_id = '"YDSiZVV1lZ0DACrsh+HMNY9N"' complete_latitude = "121.380553" complete_longitude = "31.231648" meta_info = "'{\"apdidToken\":\"emkoR+Qg7dnvEPMfJOkk/qnAi1fUDO/z/vhlYhKdDBcaZLH2dwEAAA==\",\"appName\":\"me.ele.crowdsource\",\"appVersion\":\"7.8.0\",\"bioMetaInfo\":\"6.2.0:21478612992,0\",\"deviceModel\":\"V1824BA\",\"deviceType\":\"android\",\"osVersion\":\"10\",\"sdkVersion\":\"1.1.0\",\"zimVer\":\"1.0.0\"}'" init_time = '"2021-03-17 12:42:33"' complete_time = '"2021-03-17 12:42:33"' init_code = '"OK"' init_desc = '"初始化成功(Z8100)"' result_code = '"OK"' material_matched = '"T"' out_result_info = "'{\"secrets\":[],\"resultCode\":\"OK\",\"resultMsg\":\"认证通过(Z8300)\",\"reqMsgId\":null,\"identityInfo\":null,\"materialInfo\":\"{}\",\"materialMatched\":\"T\",\"passed\":\"T\",\"reason\":null,\"success\":true}'" date = '"2020-08-26"' is_deleted = 0 created_at = '"2021-03-17 12:42:33"' updated_at = '"2021-03-17 12:42:33"' ezone_shard_info = "NULL" drc_check_time = '"2021-03-17 12:42:33"' sql = 'INSERT INTO `tb_zim`(id,knight_id,trace_uuid,out_certify_id,out_scene_type,status,name,identity,hash,' \ 'init_device_id,init_latitude,init_longitude,complete_device_id,complete_latitude,complete_longitude,' \ 'meta_info,init_time,complete_time,init_code,init_desc,result_code,material_matched,out_result_info,' \ 'is_deleted,created_at,updated_at,ezone_shard_info,drc_check_time) VALUES (' + str( id) + ' , '+str(knight_id)+' ,'+trace_uuid+', '+out_certify_id+' , '+str(out_scene_type)+' , '+str(status)+' , '+name+' , '+identity+' , '+hash+' , '+init_device_id+' , '+init_latitude+' , '+init_longitude+' , '+complete_device_id+' , '+complete_latitude+' , '+complete_longitude+' , '+meta_info+' , '+init_time +' , '+complete_time+' , '+init_code+' , '+init_desc+' , '+result_code+' , '+material_matched+' , '+out_result_info+' ,' + str(is_deleted) + ' , ' + created_at + ' , ' + updated_at + ' , ' + ezone_shard_info + ' , ' + drc_check_time + ');' f.write(sql) f.write("\n") f.close()
到此为止,简单的造数据方法就写完了。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |