python 如何生成list python 如何生成百万条数据

您所在的位置:网站首页 sqlyog生成sql脚本 python 如何生成list python 如何生成百万条数据

python 如何生成list python 如何生成百万条数据

2023-06-18 10:01| 来源: 网络整理| 查看: 265

   在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据。如果一条条的插入数据库或者一条条的创建数据,效率未免有点低。如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家介绍一种方法,很简单的也很实用。思路是用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。

python 如何生成list python 如何生成百万条数据_sql

分析下程序

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