python随机生成测试数据插入到mysql

mac2022-06-30  77

1.造数据(使用脚本完成1w条):需求:模拟个人信息的数据(姓名(长度必须是6-12位,由大写字母/小写字母/数字)、性别(男、女中随机)、年龄(18-50之间随机)、邮箱(@163.com/@qq.com/@126.com,前面的账户的名是与姓名相同));最后要求上面全部使用类、面向对象完成(写入到csv数据格式文件或者写入数据库,excel)excel、csv、yaml、json(数据格式文件)例如:姓名随机出来:abcdef----->abcdefg@163.com 最后文件命名为GetData.py import random#另外一种方式:使用python的内置模块stringimport stringclass GetData(): #self表示的是当前对象的引用 def get_Name(self): get_length=random.randint(6,12) get_source=string.digits+string.ascii_letters get_str="".join(random.sample(get_source,get_length)) return get_str def get_Age(self): return random.randint(18,50) def get_Sex(self): list1=["男","女"] #choice表示的是从传入的参数序列中进行随机返回一个元素,如果序列为空则抛出异常(IndexError) return random.choice(list1) #邮箱 def get_Email(self): list1=["@163.com","@126.com","@qq.com"] #["@","1","6","3"] return random.choice(list1) '''#实现姓名字符串的获取也可以用第二种方法def getName(): get_chr="" #声明的是所需要组成构成数据的数据源变量 #sourceSeed="abcdefghijklmn" #字母都是可以通过ASCII码进行相互转换A----->65 a------>97 #字符型---->由一个字母或者一个汉字所构成;字符型与整形之间是可以数据类型强制转换; #涉及两种重要函数:ord(传入字符串参数)/chr(传入整形值) get_lenth=random.randint(6,12) print("长度",get_lenth) for j in range(1,get_lenth+1): get_random_chr=random.randint(0,122) print("随机的数是:",get_random_chr) #print(chr(get_chr)) get_return_chr=get_Not_In(get_random_chr) print(get_return_chr) if get_return_chr>9: get_chr+=chr(get_return_chr) else: get_chr+=str(get_return_chr) #print(get_return_chr) print(get_chr)#声明一个函数完成判定不是在91-97之间的数def get_Not_In(input_number): list1=[] for i in range(10, 65): list1.append(i) for i in range(91, 97): list1.append(i) #print(set(list1)) while True: if input_number in set(list1): get_random_chr = random.randint(0, 122) input_number= get_random_chr else: break return input_numbergetName()'''

2

如果数据量过大的话,数据是存储在数据格式文件中较好还是数据库中较好?为什么?#数据量大的时候,数据肯定是存储在数据库中(mysql数据库,oracle数据库);数据量较大时可能导致文件#对象流获取失败(文件的打开失败)---->稳定性没有数据库强#-------------------------------------------------------------------------------#封装数据库的创建表、插入数据、更新数据、删除数据#完成第一个需求:创建一个表:调用创建表的方法时,能够实现传入对应的字段即可创建对应的表结构#例如:create_table("name varchar(20)","sex char(4)","")

 

import pymysqlimport GetDataclass Mysql_Oprea(): #驱动器对象创建对象时进行初始化 def __init__(self): self.get_conn = pymysql.connect(host="localhost",port=3307,user="root",password= "",database="test0513") self.get_curosr = self.get_conn.cursor() #创建一个创建表的方法 def create_table(self,tableName,*args): #list1=[] get_len=len(args) count=0 str1="" for i in args: count+=1 #list1.append(i) print(i) str1+=i if count!=get_len: str1+="," #tuple1=tuple(list1) print(str1) str_create_sql="create table %s (%s)"%(tableName,str1) self.get_curosr.execute(str_create_sql) print(str_create_sql) #create table stu (stu_name varchar(10)) #删除表 def drop_table(self,tables): drop_tables='drop table '+tables print(drop_tables) self.get_curosr.execute(drop_tables) #插入数据 def insert_data(self,tableName,*args): str_create_sql = "insert into %s values %s" % (tableName, args) self.get_curosr.execute(str_create_sql) print(str_create_sql) # create table stu (stu_name varchar(10))    #插入数据只是简单的写了,比如还有指定列的方法插入,还可以用比如字典的方法写,也可以用一个列表包含多个元组的方法。if __name__ == '__main__': mysqlTest=Mysql_Oprea() tuple1=("lesson_id int","lesson_name varchar(10)") # mysqlTest.create_table("student","s_name varchar(15)","s_Age int(5)","s_sex char(8)","s_Email varchar(20)") # mysqlTest.drop_table('student') get_data=GetData.GetData() for i in range(1, 10001): get_name = get_data.get_Name() get_sex = get_data.get_Sex() get_age = get_data.get_Age() get_email = get_data.get_Email() get_email=get_name+get_email # csv_write_obj.writerow([get_name, get_sex, get_age, get_name + get_email]) mysqlTest.insert_data('student',get_name,get_age,get_sex,get_email)#

转载于:https://www.cnblogs.com/1308test/p/11217931.html

最新回复(0)