每日10行代码26:用faker构造测试数据(假数据)

今天去参加婚礼了,回来的有些晚,所以简单测试一下fake库,用来生成假数据。

# _*_ encoding:utf-8 _*_
from faker import Faker
fake = Faker(locale='zh_CN')
print('详细地址:', fake.address())
print('城市:', fake.city())
print('姓名:', fake.name())
print('手机号码:', fake.phone_number())
print('身份证号:', fake.ssn())

输出结果:

详细地址: 山东省秀芳县淄川孙路G座 284402
城市: 永安县
姓名: 郭坤
手机号码: 13652625424
身份证号: 371322194701044098

测试了以后,发现这个库别的方面都挺好,但地址这块不是很满意,首先,他内置的市很少,我看了下他的源码:
https://github.com/joke2k/faker/blob/master/faker/providers/address/zh_CN/init.py
所有的市只有:

  cities = (
        "北京", "上海", "天津", "重庆", "哈尔滨", "长春", "沈阳", "呼和浩特",
        "石家庄", "乌鲁木齐", "兰州", "西宁", "西安", "银川", "郑州", "济南", "太原",
        "合肥", "武汉", "长沙", "南京", "成都", "贵阳", "昆明", "南宁", "拉萨",
        "杭州", "南昌", "广州", "福州", "台北", "海口", "香港", "澳门", "通辽",
        "兴安盟", "太原", "辛集", "邯郸", "沈阳", "辽阳", "兴城", "北镇", "阜新",
        "哈尔滨", "齐齐哈尔", "淮安", "张家港", "海门", "六安", "巢湖", "马鞍山",
        "永安", "宁德", "嘉禾", "荆门", "潜江", "大冶", "宜都", "佛山", "深圳",
        "潮州", "惠州", "汕尾", "东莞", "梧州", "柳州", "合山", "六盘水", "关岭")

看到这个列表,至少我们省的好几个市都不在上面。还有这里面有一引起是省级市,比如北京,有一些县级市,如宜都。
我如果批量生成地址的话,会出现:

广东省拉萨市双滦太原路M座 353274

这样的一看就是假的地址,当然我们也确实要生成假地址,但总要表面上像真的一样。
因为这个问题,我搜了下网上,发现淘宝有地址库,但是可能需要购买或合作商才能使用。

总的来说

  1. faker库还是很好用的,生成测试数据方面挺不错。
  2. 地址库没有考虑到中国国情,做的比较差一点。我感觉要想做更好用的地址库,可以在网上爬取一些地址来使用,或者修改faker的地址生成规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值