收获10400颗星!这个Python库有点黑科技,竟然可以伪造很多'假'的数据!
超级无敌干货第一时间推给你!!!
程序员GitHub推荐搜索
大家好,我是程序员G哥
Python里面的库真的太多太多了,各种千奇百怪的都有。今天小编逛GitHub的时候发现一个好玩的库,这个库可厉害啦,竟然能够模拟出很多以假乱真的数据。
在生产环境中,有点时候产品要上线,后端必要要做用户的压力测试,就需要大量的人员信息数据去测试我们的产品,嘿嘿这个库就可以派上用场啦,我们一起来看一下。
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.
有同学说这个都是老外的地址,名字,能不能弄一些中文的名字。当然可以在这个fake是支持中文的名字和地址的:
1 卢瑜 新疆维吾尔自治区刚市孝南哈尔滨路f座 656763
2 聂秀芳 上海市哈尔滨市怀柔孟路L座 322988
3 王娜 海南省丹县静安刘路q座 799385
4 叶建国 河北省石家庄市永川张街d座 521237
5 杜欢 安徽省帆县新城高路O座 228842
是不是很神奇啊,小编查了一下源码,这个神奇的库竟然支持模拟45个国家的人名字,地址等信息。
除了上面的人名,地址信息,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了一堆固定的人姓和名字,然后按照男女进行分类,并且名字的姓还按照一定权重进行分布,比如王,李,张,刘这些都是用的比较多的名字,然后再用算法按照一定的规则进行随机生成。
探寻了一番觉得这个库还是很有意思的,尤其是在后端进行用户压力测试的非常有用!有兴趣的小伙伴可以下载玩一下,顺便探索一下它的源码,作者的代码结构写的非常工整,吸收一波功力。对这个库有兴趣的同学,欢迎留言吱一声。