python按比例生成数据组_python脚本批量生成数据

在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据。如果一条条的插入数据库或者一条条的创建数据,效率未免有点低。如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家介绍一种方法,很简单的也很实用。思路是用python代码写一段小程序,生成一定数量的SQL语句,再把这些SQL语句拷贝黏贴到数据库工具执行SQL即可。

假如有个联系人的学生表student,其表结构为姓名name、学校school、电话telphone、邮箱email。

以Mysq为例子,sql语句如下:

INSERT INTO student(name , shool , telephone , email) VALUES(“小明” ,”万航渡路小学” , 13810001000 ,”xiaoming@gmail.com”);

通过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。

857297-20171104185614857-717159545.png

分析下程序

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= 1000date= '"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()

到此为止,简单的造数据方法就写完了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值