前两篇文章中沐沐为大家介绍了用faker库批量生成企业信息、用户信息的方法;批量生成1w条数据到Excel表格,如果需要录入系统的话,又需要通过界面导入、JMeter的csv参数化导入、数据库导入等方式,会较为繁琐。如果大家熟悉数据库表结构的话,就可以使用pyhon脚本直接将批量造好的数据导入数据库。必须要强调的是,python操作数据库之前,提前先备份好对应的表,以免操作失误后还可以还原数据。
以下代码为批量生成企业数据后直接插入mysql数据库的举例:
# 批量造数据导入mysql from faker import Faker import pymysql from faker.providers import BaseProvider import random import shortuuid import time # 创建自定义Provider class CustomizeProvider(BaseProvider): def risk_type(self): risk_type_list= ['P0', 'P1', 'P2', 'P3'] risk_type=random.choice(risk_type_list) return risk_type def risk_description(self): risk_des_list= ['暂无风险', '高风险', '中高风险', '中风险','低风险'] risk_des=random.choice(risk_des_list) return risk_des # 添加Provider faker = Faker('zh_CN') faker.add_provider(CustomizeProvider) #数据库连接 try: db= pymysql.connect(host="192.168.**.**", port=3306, user="****", password="***",db="库名",charset="utf8") #填写需要链接的数据库服务器地址、端口号、登录名、密码、库名等信息 print("数据库连接成功") except: print("数据库连接失败") def create_company_data(number): # 添加构造的随机数据 for i in range(number): uuid = shortuuid.ShortUUID().random(length=20) # 随机uuid,可以作为导入数据库的主键信息 company = faker.company() #公司名称 uniscid = faker.ssn() #统一社会信用代码 legen_persoon = faker.name() #法定代表人 risk_type = faker.risk_type() #风险类别 risk_description = faker.risk_description() #风险描述 area_code = '350100' #区域编码 create_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #时间 company_data = [uuid, uniscid, company, legen_persoon, risk_type, risk_description,area_code,create_time] print(company_data) # 数据写入mysql cursor = db.cursor() # 使用cursor()方法获取操作游标 # SQL 插入语句 sql = "insert into corporate_portrait(unid,society_code,company_name,corporation,fxyj_level,fxyj_tips,area_code,create_time,fxyj_time) value ('%s','%s','%s','%s','%s','%s','%s','%s','%s')" \ % (uuid, uniscid, company, legen_persoon, risk_type, risk_description,area_code,create_time,create_time) #插入的instert语句 try: cursor.execute(sql) # 执行sql语句 db.commit() # 执行sql语句 print("数据插入成功") except: db.rollback() # 发生错误时回滚 db.close() # 关闭数据库连接 print("数据插入失败,已回滚") if __name__ == '__main__': create_company_data(10) #括号内填写需要插入的条数
The more we share,The more we have.
希望这篇文章对大家有用...