收获10400颗星!这个Python库有点黑科技,竟然可以伪造很多'假'的数据!

超级无敌干货第一时间推给你!!!

程序员GitHub推荐搜索

Python
Java
GitHub

大家好,我是程序员G哥

Python里面的库真的太多太多了,各种千奇百怪的都有。今天小编逛GitHub的时候发现一个好玩的库,这个库可厉害啦,竟然能够模拟出很多以假乱真的数据

在生产环境中,有点时候产品要上线,后端必要要做用户的压力测试,就需要大量的人员信息数据去测试我们的产品,嘿嘿这个库就可以派上用场啦,我们一起来看一下。

这个神器竟然收获了10000多颗星,1200多个fork,还是很厉害的,它支持Python2和Python3,可以模拟制造很多人员的信息,而且使用起来非常方便,我们来看一下这个库啥妙用。

01.如何安装

直接pip3 install faker 非常方便

02.如何使用

1).轻松的创建一排人的名字,地址和信息

name:Peter Thompsonaddr:7025 Alice Lodge Suite 136Port Juanshire, WV 92045text:Season spring smile marriage fire answer run.Population read inside several seat travel. Player parent two pressure easy. Television customer century school.

name:Christopher Carpenteraddr:982 Harper VillageWest Marcusland, GA 93351text:Condition meeting hour arrive note newspaper condition. Response game police plan staff say plan.Reach ahead certain there health my store. Attack lay our.

2).按照地理位置,国家来创建不同的人名字

有同学说这个都是老外的地址,名字,能不能弄一些中文的名字。当然可以在这个fake是支持中文的名字和地址的:

我们只需要在Faker这个类初始化的时候选择zn_CN就可以了,看一些打印的结果

1 卢瑜 新疆维吾尔自治区刚市孝南哈尔滨路f座 656763

2 聂秀芳 上海市哈尔滨市怀柔孟路L座 322988

3 王娜 海南省丹县静安刘路q座 799385

4 叶建国 河北省石家庄市永川张街d座 521237

5 杜欢 安徽省帆县新城高路O座 228842

是不是很神奇啊,小编查了一下源码,这个神奇的库竟然支持模拟45个国家的人名字,地址等信息。

3).除了人名地址,还能模拟其他的数据

除了上面的人名,地址信息,faker这个库还能模拟出其他的更详细的数据,比如国家,省,城市,县城,区,街道,工作岗位,电话号码等。

1 黑龙江省 涛市 海港 辽宁省辛集市南溪济南路Z座 817565 汤桂兰 房产项目配套工程师 15663140494

2 山西省 邯郸市 沙湾 陕西省重庆县黄浦济南路v座 936582 蒋宇 集装箱业务 13783872876

3 海南省 嘉禾市 兴山 广东省海口县海陵马路M座 849210 王丽 电声/音响工程师/技术员 13196533827

4 湖北省 建华市 西峰 贵州省西宁县东城合肥路V座 856552 董秀珍 意大利语翻译 13414389884

5 宁夏回族自治区 辛集县 沙市 甘肃省辽阳县花溪甘路e座 168010 郭玉 组装工 18762413524

03.探索一下源码

小编也非常好奇,这个库哪里来的这么多的信息呢,有没有连接数据库的支持~~就能随意所欲的创造这么人的信息。

于是我深入源码探究了一番,原来在这个源码库里面有一个provider文件夹,里面存放了大量的信息,而且进行了分类整理整:

我们随便挑选一个文件夹people/zh_CN进去看一下,到底这个神奇的人名是怎么来的,为啥弄的有模有样的?

原来是hardcode了一堆固定的人姓和名字,然后按照男女进行分类,并且名字的姓还按照一定权重进行分布,比如王,李,张,刘这些都是用的比较多的名字,然后再用算法按照一定的规则进行随机生成。


探寻了一番觉得这个库还是很有意思的,尤其是在后端进行用户压力测试的非常有用!有兴趣的小伙伴可以下载玩一下,顺便探索一下它的源码,作者的代码结构写的非常工整,吸收一波功力。对这个库有兴趣的同学,欢迎留言吱一声。

(0)

相关推荐