DATAFAKER 使用方法记录

news/2024/10/21 3:31:21/

DATAFAKER 使用方法记录

win10 64位
Python 3.10.11

参考网址

datafaker的使用–详细教程
https://blog.csdn.net/A15517340610/article/details/105623103

https://github.com/gangly/datafaker

python 版本

It is compatible with python2.7 and python3.4+
也就是说 他兼容 Python2.7和 python3.4 以上的版本,不一定非要 python3.4

安装流程

pip install datafaker

C:\Users\jack>pip install datafaker
Collecting datafakerDownloading datafaker-0.7.6.tar.gz (18 kB)Preparing metadata (setup.py) ... done
Collecting sqlparse==0.3.0Downloading sqlparse-0.3.0-py2.py3-none-any.whl (39 kB)
Collecting faker==2.0.2Downloading Faker-2.0.2-py2.py3-none-any.whl (879 kB)---------------------------------------- 879.8/879.8 kB 704.7 kB/s eta 0:00:00
Collecting configparserDownloading configparser-5.3.0-py3-none-any.whl (19 kB)
Collecting sqlalchemy==1.3.8Downloading SQLAlchemy-1.3.8.tar.gz (5.9 MB)---------------------------------------- 5.9/5.9 MB 1.1 MB/s eta 0:00:00Preparing metadata (setup.py) ... done
Collecting pywin32Downloading pywin32-306-cp310-cp310-win_amd64.whl (9.2 MB)---------------------------------------- 9.2/9.2 MB 1.1 MB/s eta 0:00:00
Collecting python-dateutil>=2.4Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)---------------------------------------- 247.7/247.7 kB 1.2 MB/s eta 0:00:00
Collecting six>=1.10Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting text-unidecode==1.3Downloading text_unidecode-1.3-py2.py3-none-any.whl (78 kB)---------------------------------------- 78.2/78.2 kB 1.4 MB/s eta 0:00:00
Installing collected packages: text-unidecode, pywin32, sqlparse, sqlalchemy, six, configparser, python-dateutil, faker, datafakerWARNING: The script sqlformat.exe is installed in 'C:\Users\jack\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts' which is not on PATH.Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.DEPRECATION: sqlalchemy is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559Running setup.py install for sqlalchemy ... doneWARNING: The script faker.exe is installed in 'C:\Users\jack\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts' which is not on PATH.Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.DEPRECATION: datafaker is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559Running setup.py install for datafaker ... done
Successfully installed configparser-5.3.0 datafaker-0.7.6 faker-2.0.2 python-dateutil-2.8.2 pywin32-306 six-1.16.0 sqlalchemy-1.3.8 sqlparse-0.3.0 text-unidecode-1.3[notice] A new release of pip is available: 23.0.1 -> 23.1
[notice] To update, run: C:\Users\jack\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe -m pip install --upgrade pipC:\Users\jack>

在这里插入图片描述
pip install mysqlclient

C:\Users\jack>pip install mysqlclient
Collecting mysqlclientDownloading mysqlclient-2.1.1-cp310-cp310-win_amd64.whl (178 kB)---------------------------------------- 178.4/178.4 kB 489.0 kB/s eta 0:00:00
Installing collected packages: mysqlclient
Successfully installed mysqlclient-2.1.1[notice] A new release of pip is available: 23.0.1 -> 23.1
[notice] To update, run: C:\Users\jack\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe -m pip install --upgrade pip

测试方法

navicat 新建 数据库
test_datafaker
在这里插入图片描述

create table stu (id int unsigned auto_increment primary key COMMENT '自增id',name varchar(20) not null comment '学生名字',school varchar(20) not null comment '学校名字',nickname varchar(20) not null comment '学生小名',age int not null comment '学生年龄',class_num int not null comment '班级人数',score decimal(4,2) not null comment '成绩',phone bigint not null comment '电话号码',email varchar(64) comment '家庭网络邮箱',ip varchar(32) comment 'IP地址',address text comment '家庭地址'
) engine=InnoDB default charset=utf8;

在这里插入图片描述
在这里插入图片描述
meta.txt内容:

id||int||自增id[:inc(id,1)]
name||varchar(20)||学生名字
school||varchar(20)||学校名字[:enum(file://names.txt)]
nickname||varchar(20)||学生小名[:enum(鬼泣, 高小王子, 歌神, 逗比)]
age||int||学生年龄[:age]
class_num||int||班级人数[:int(10, 100)]
score||decimal(4,2)||成绩[:decimal(4,2,1)]
phone||bigint||电话号码[:phone_number]
email||varchar(64)||家庭网络邮箱[:email]
ip||varchar(32)||IP地址[:ipv4]
address||text||家庭地址[:address]

meta.txt文件中每行数据为元数据的一个字段描述,以||分割为三列,若以#开头,则忽略该行。

第一列:字段名
第二列:表字段类型
第三列:字段注释,其中包含构造规则标识
name不加标记则会随机产生20字符内的字符串,可以加上改为:学生名字[:name]

其中学校名字[:enum(file://names.txt)]表示从本地文件names.txt中读取枚举数据,表示学校名称只能从下面这5所学校中随机产生。names.txt内容如下:

names.txt内容:

清华中学
人和中心
广东中学
猪场
旧大院

后面将详细介绍构造规则说明

注意:meta.txt和names.txt需要放在同一个目录下,再运行datafaker命令 如果没有enum类型从文件读取数据,则不需要names.txt文件

datafaker mysql mysql+mysqldb://root:123456@localhost:3306/test_datafaker stu 10 --outprint --meta meta.txt --outspliter ,,

在windows Powershell里面运行会出错,在普通的cmd 里面运行
在这里插入图片描述

写入:

datafaker rdb mysql+mysqldb://root:123456@localhost:3306/test_datafaker?charset=utf8 stu 10 --meta meta.txt 

则将直接写入mysql中

若要再次运行,需要修改meta.txt文件中为id[:inc(id,11)]起始值为11或更大值,不然数据库会报主键重复错误。

修改meta.txt

meta.txt

id||int||自增id[:inc(id,1)]
name||varchar(20)||学生名字[:name]
school||varchar(20)||学校名字[:enum(file://names.txt)]
nickname||varchar(20)||学生小名[:enum(鬼泣, 高小王子, 歌神, 逗比)]
age||int||学生年龄[:age]
class_num||int||班级人数[:int(10, 100)]
score||decimal(4,2)||成绩[:decimal(4,2,1)]
phone||bigint||电话号码[:phone_number]
email||varchar(64)||家庭网络邮箱[:email]
ip||varchar(32)||IP地址[:ipv4]
address||text||家庭地址[:address]

111

datafaker mysql mysql+mysqldb://root:123456@localhost:3306/test_datafaker stu 10 --outprint --meta meta.txt

在这里插入图片描述
这里面的名字和地址都是 自动生成的,还是比较牛的


http://www.ppmy.cn/news/51741.html

相关文章

Python 读写 CSV 数据

问题 你想读写一个 CSV 格式的文件 解决方案 对于大多数的 CSV 格式的数据读写问题,都可以使用 csv 库。 例如:假设你在一 个名叫 stocks.csv 文件中有一些股票市场数据,像这样: Symbol,Price,Date,Time,Change,Volume "…

为什么企业要做大规模敏捷?

背景 软件工程里一个重要的指标就是“可用的软件”,敏捷宣言里也同样告诉我们“工作的软件高于详尽的文档”,那“可用的软件”、“工作的软件”意味着什么呢?在我的理解里,可以经历用户 “千锤百炼”的软件就是一个“可用的软件”…

黑盒测试过程中【测试方法】详解4-因果图

在黑盒测试过程中,有9种常用的方法:1.等价类划分 2.边界值分析 3.判定表法 4.正交实验法 5.流程图分析 6.因果图法 7.输入域覆盖法 8.输出域覆盖法 9.猜错法 黑盒测试过程中【测试方法】讲解1-等价类,边界值,判定表_朝一…

《ChatGPT开发应用指南》,Datawhale开源了!

Datawhale发布 开源教程:HuggingLLM,Datawhale团队 随着ChatGPT的爆火,我们相信未来会有越来越多的大模型及类似OpenAI提供的服务出现,AI 正在逐渐平民化,将来每个人都可以利用大模型轻松地做出自己的AI产品。 Huggin…

利用ArcGIS软件赋予tif影像空间参考坐标系

问题: 在处理数据时有一幅没有任何空间参考坐标信息的tif影像,实质上为一个照片。现在需要将其与一个有空间地理参考坐标信息的shp文件叠加在一起。如何解决这个问题呢? 已知信息: shp文件的空间地理参考 shp文件的边界与tif影像的…

链表篇总结

移除链表元素: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 思路: 这里以链表 1 4 2 4 来举例,移除元素4。 那么因为单链表的特殊性,只…

vue安装初始化项目

安装vue脚手架启动项目 1、nvm安装vue 当前nvm使用的node版本是v10.24.1 npm install -g vue/cli安装完成之后报错: You are using Node v10.24.1, but this version of vue/cli requires Node ^12.0.0 || > 14.0.0. Please upgrade your Node version. 显而易…

2379. 得到 K 个黑块的最少涂色次数

2379. 得到 K 个黑块的最少涂色次数 给你一个长度为 n 下标从 0 开始的字符串 blocks ,blocks[i] 要么是 ‘W’ 要么是 ‘B’ ,表示第 i 块的颜色。字符 ‘W’ 和 ‘B’ 分别表示白色和黑色。 给你一个整数 k ,表示想要 连续 黑色块的数目。…