当前位置: 首页 > news >正文

使用fake为数据库生成随机数据

参考https://cloud.tencent.com/developer/article/1663417

增加了自己的代码,使得只需要构建内容映射字典,然后根据字典就可以直接将数据插入到数据库中

from faker import Faker
import pandas as pd
from urllib import parse
# from pymongo import MongoClient
import pymysql
import random
import numpy as np
import traceback
import sysfake = Faker('zh_CN')def yes_or_no():return np.random.choice([0,1]) def money():return round(random.uniform(10,10000),4)# 定义fakedic,后续的所有数据都基于这个规则来生成和新建
fake_dic = {"iana_id":fake.iana_id, #  唯一id"date_time":fake.date_time, # 时间"yes_or_no": yes_or_no, # 1 或者 0"name":fake.name, # 名字"text":fake.text, # 随机文本"money":money, # 钱(10~10000)"class":fake.ipv4_network_class # 类别
}lc_bill_dic = {
"id": "iana_id", # 唯一id"create_by":"name",# 名字"create_time":"date_time",# 创建日期"deteled":"yes_or_no", # 状态
"class": "class", # 类别
"rent": "money",#	日租金
"text": "text",#	备注}def get_df(data_dic, need_nums):# 根据传入参数只做数据# need_nums = 10data_list = []for i in range(need_nums):data_row = {}for key, value in data_dic.items():data_row[key] = fake_dic[value]()if isinstance(data_row[key], str):data_row[key] = data_row[key].replace("\n","")[:64]data_list.append(data_row)return pd.DataFrame(data_list)# 插入数据库
def deal_mysql(table_name, data_df):# 打开数据库连接db = pymysql.connect(host="localhost", user="root", password="root", database="MyTest")# 使用cursor()方法获取操作游标cursor = db.cursor()# SQL 插入语句## 拼接sql插入语句columns = list(data_df.columns)sql_columns = f""" `{"`,`".join(columns)}` """sql_placeholder = ",".join(["'%s'"] * len(columns))for each in data_df.to_dict("index").values():sql_data = tuple([each[column] for column in columns])# print(sql_placeholder)# print(sql_data)sql = f"insert into {table_name} ({sql_columns}) value ({sql_placeholder})"%sql_dataa = sql# print(sql)try:# 执行sql语句cursor.execute(sql)# 执行sql语句db.commit()print("insert ok")except:# 发生错误时回滚exc_type, exc_value, exc_traceback = sys.exc_info()print("exc_type:",exc_type)print("exc_value:",exc_value)print("exc_traceback:",exc_traceback)db.rollback()# 关闭数据库连接cursor.close()deal_mysql("bill", get_df(lc_bill_dic, 20))
http://www.lryc.cn/news/127518.html

相关文章:

  • 树结构转List
  • Android复习(Android基础-四大组件)——Broadcast
  • Ubuntu下mysql8开启远程连接
  • java对象和json类型转换
  • elasticsearch-head 插件
  • Neo4j之FOREACH基础
  • 【SpringBoot】| 接口架构风格—RESTful
  • CentOS系统环境搭建(十)——CentOS7定时任务
  • 如何在安卓设备上安装并使用 ONLYOFFICE 文档
  • 【制作npm包1】申请npm账号、认识个人包和组织包
  • linux学习(文件描述符)[11]
  • 影响力再度提升,Smartbi多次蝉联Gartner、IDC等权威认可
  • 【动态map】牛客挑战赛67 B
  • mysql(2)
  • 介绍 Apache Spark 的基本概念和在大数据分析中的应用
  • Vue CLI创建Vue项目详细步骤
  • 机器学习算法之-逻辑回归(2)
  • 【业务功能篇65】maven加速 配置settings.xml文件 镜像
  • 题目:售货员的难题(状压dp)
  • Linux 的 MySQL 5.x - 关于 Windows 10 的 Navicat Premium 导入 Excel (.xlsx)文件,报错问题集锦
  • 基于IP网络的存储协议——iSCSI
  • 神经网络基础-神经网络补充概念-27-深层网络中的前向传播
  • 用cpolar生成的公网地址,对位于本地的Cloudreve网盘进行访问
  • docker compose部署zookeeper
  • 【SA8295P 源码分析】77 - QNX Camera 之 ais_server 服务 源码分析
  • 内网搭建电影网站的实现和进行公网访问
  • 5.4 常用滤波算法
  • 【算法系列篇】双指针
  • Web和云开发,Rust会起飞?
  • 深度学习项目学习