type
Post
status
Published
date
Nov 16, 2022
slug
faker
summary
Faker是一个Python的第三方开源项目,可以生成虚假数据。内置的方法可以快速创建绝大多数类型的数据,比如姓名、地址、电话、身份证、时间、网络信息、文本信息等,并且结合python语法,可以向数据库批量构造压力测试数据。 github地址:https://github.com/joke2k/faker 官方文档:https://faker.readthedocs.io/en/master/
tags
Python
工具
category
Python工具
icon
password
Property
Nov 16, 2022 10:38 AM
Faker是一个Python的第三方开源项目,可以生成虚假数据。内置的方法可以快速创建绝大多数类型的数据,比如姓名、地址、电话、身份证、时间、网络信息、文本信息等,并且结合python语法,可以向数据库批量构造压力测试数据。

安装

pip install Faker

基本用法

from faker import Faker #创建对象,默认生成的数据为为英文,使用zh_CN指定为中文 fake = Faker('zh_CN') print(fake.name())#随机生成姓名 print(fake.address())#随机生成地址 print(fake.phone_number())#随机生成电话号码 print(fake.pystr())#随机生成字符串 print(fake.email())#随机生成邮箱地址 for i in range(10): print(fake.name())#随机生成10个姓名

常用方法

地理信息

city_suffix():市,县 country():国家 country_code():国家编码 district():区 geo_coordinate():地理坐标 latitude():地理坐标(纬度) longitude():地理坐标(经度) postcode():邮编 province():省份 address():详细地址 street_address():街道地址 street_name():街道名 street_suffix():街、路

基础信息

ssn():生成身份证号 bs():随机公司服务名 company():随机公司名(长) company_prefix():随机公司名(短) company_suffix():公司性质,如‘信息有限公司’ fake.credit_card_expire(start='now', end='+10y', date_format='%m/%y'):随机信用卡到期日如'03/30' credit_card_full():生成完整信用卡信息 credit_card_number():信用卡号 credit_card_provider():信用卡类型 credit_card_security_code():信用卡安全码 job():随机职位 first_name_female():女性名 first_name_male():男性名 name():随机生成全名 name_female():男性全名 name_male():女性全名 phone_number():随机生成手机号 phonenumber_prefix():随机生成手机号段,如139

邮箱信息

ascii_company_email():随机ASCII公司邮箱名 ascii_email():随机ASCII邮箱 company_email():随机公司邮箱 email():随机普通邮箱 safe_email():安全邮箱

网络基础信息

domain_name():生成域名 domain_word():域词(即,不包含后缀) ipv4():随机IP4地址 ipv6():随机IP6地址 mac_address():随机MAC地址 tld():网址域名后缀(.com,.net.cn,等等,不包括.) uri():随机URI地址 uri_extension():网址文件后缀 uri_page():网址文件(不包含后缀) uri_path():网址文件路径(不包含文件名) url():随机URL地址 user_name():随机用户名 image_url():随机URL地址

浏览器

chrome():随机生成Chrome的浏览器user_agent信息 firefox():随机生成FireFox的浏览器user_agent信息 internet_explorer():随机生成IE的浏览器user_agent信息 opera():随机生成Opera的浏览器user_agent信息 safari():随机生成Safari的浏览器user_agent信息 linux_platform_token():随机Linux信息 user_agent():随机user_agent信息

数字信息

numerify():三位随机数字 random_digit():0~9随机数 random_digit_not_null():1~9的随机数 random_int():随机数字,默认0~9999,可以通过设置min,max来设置 random_number(digits=9, fix_len=True):随机数字,如果digits 为None(默认),则其值将设置为1 到9 之间的随机整数。如果fix_len 为 False(默认),则可以生成所有不超过位数的整数。如果 fix_len 为 True,则只能生成具有确切位数的整数。 pyfloat():left_digits=5 #生成的整数位数, right_digits=2 #生成的小数位数, positive=True #是否只有正数 pyint():随机Int数字(参考random_int()参数) pydecimal():随机Decimal数字(参考pyfloat参数)

文本信息

pystr():随机字符串 random_element():随机字母 random_letter():随机字母 paragraph():随机生成一个段落 paragraphs():随机生成多个段落 sentence():随机生成一句话 sentences():随机生成多句话,与段落类似 text():随机生成一篇文章 word():随机生成词语 words():随机生成多个词语,用法与段落,句子,类似 binary():随机生成二进制编码 boolean():True/False language_code():随机生成两位语言编码 locale():随机生成语言/国际 信息 md5():随机生成MD5 null_boolean():NULL/True/False password():随机生成密码,可选参数:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母 sha1():随机SHA1 sha256():随机SHA256 uuid4():随机UUID

时间信息

date():随机日期 date_between():随机生成指定范围内日期,参数:start_date,end_date date_between_dates():随机生成指定范围内日期,用法同上 date_object():随机生产从1970-1-1到指定日期的随机日期。 date_time():随机生成指定时间(1970年1月1日至今) date_time_ad():生成公元1年到现在的随机时间 date_time_between():用法同dates future_date():未来日期 future_datetime():未来时间 month():随机月份 month_name():随机月份(英文) past_date():随机生成已经过去的日期 past_datetime():随机生成已经过去的时间 time():随机24小时时间 timedelta():随机获取时间差 time_object():随机24小时时间,time对象 time_series():随机TimeSeries对象 timezone():随机时区 unix_time():随机Unix时间 year():随机年份

使用案例

from faker import Faker from random import randint fake = Faker() def generate(num): total = [] str_ = '' for i in range(num): name = fake.name().split(' ')[1] number = "0" + str(3022019000 + i + 1) scores = [str(randint(0,10)) for _ in range(10)] str_ = ' '.join([number,name,*scores]) total.append(str_) return total
输出结果
03022019001 White 4 2 1 8 4 8 7 4 6 0 03022019002 Tanner 0 5 6 3 3 5 6 10 3 9 03022019003 Mason 6 9 1 8 3 8 0 8 4 1 03022019004 Clark 7 1 3 9 8 6 7 0 9 1 03022019005 Nelson 5 6 6 5 7 2 2 8 0 6 03022019006 Jimenez 1 10 7 7 6 4 1 9 10 9 03022019007 Cline 8 8 4 7 9 5 0 1 6 1 03022019008 Gentry 7 3 3 2 6 5 3 9 9 6 03022019009 Clark 9 2 5 0 6 4 9 6 5 6 03022019010 Bailey 4 9 4 10 1 3 10 4 1 1 03022019011 Christensen 10 0 3 6 5 6 9 7 7 2 03022019012 Garza 2 9 3 1 4 8 4 1 9 1 03022019013 Melendez 0 9 10 2 10 10 0 7 4 0 03022019014 Rodriguez 3 6 0 0 2 7 4 0 10 10 03022019015 Ramirez 9 5 3 6 1 3 5 7 3 4 03022019016 Riley 7 4 8 5 0 5 2 0 2 5 03022019017 Prince 4 7 10 1 4 6 4 7 8 4 03022019018 Edwards 4 8 8 6 5 2 7 9 0 10 03022019019 Henderson 10 1 4 9 8 2 9 4 4 6 03022019020 Lewis 8 7 7 5 1 6 2 9 10 10
爬虫&数据分析实战——腾讯视频《奔跑吧》第九季弹幕数据分析GOGO支付——支付宝&微信个人支付系统解决方案