安装 faker
pip install Faker
pip install Dumper
设置生成器
from faker import Faker
fake = Faker()
它可以通过访问以想要的数据类型命名的属性来生成数据
简单的栗子
生成英文名字、英文地址、长文本
from faker import Faker fake = Faker() fake.name() # 'Lucy Cechtelar' fake.address() # '426 Jordy Lodge # Cartwrightshire, SC 88120-6700' fake.text() # 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi # beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt # amet quidem. Iusto deleniti cum autem ad quia aperiam. # A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui # quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur # voluptatem sit aliquam. Dolores voluptatum est. # Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est. # Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati. # Et sint et. Ut ducimus quod nemo ab voluptatum.'
faker 是以 en_US 为默认语言的,如果想要生成中文数据呢?
设置中文语言
from faker import Faker fake = Faker("zh_CN") fake.name() # 吴帅 fake.address() # 上海市霞市黄浦魏路R座 196165
繁体字
fake = Faker("zh_TW")
同时设置多种语言
想同时生成英文、中文的数据呢
from faker import Faker fake = Faker(["en_US", "zh_CN"]) print(fake.name()) print(fake.name()) print(fake.name()) print(fake.name()) print(fake.address()) print(fake.address()) print(fake.address()) print(fake.address()) # 输出结果 温红梅 吴帅 Kathy Howard John Parker 0236 Harmon Tunnel Apt. 878 South Lisa, AL 91400 10434 Christina Manor Veronicachester, ND 40559 上海市霞市黄浦魏路R座 196165 澳门特别行政区红市翔安哈尔滨街j座 663953
Providers
- 每个生成器属性(如 name、address、city)都被称为 fake
- faker generator 有很多,打包在 providers 中
- 所以 providers 有很多种,像 name、address 就所属于不同的 providers
使用不同 providers 的简单栗子
from faker import Faker from faker.providers import internet fake = Faker() fake.add_provider(internet) print(fake.ipv4_private()) # 输出结果 172.26.147.128
但其实不手动 add_provider 也可以的
from faker import Faker fake = Faker() print(fake.ipv4_private()) # 输出结果 172.30.247.147
注意
后面的栗子主要以中文为主
faker.providers.address
# 地址:'甘肃省澳门县崇文黄街s座 319489' fake.address() # 行政单位:'云南省'、'香港特别行政区' fake.administrative_unit() # 楼号:'W座'、'c座' fake.building_number() # 城市:'红霞市'、'成市' fake.city() # 城市名:'六安'、'宁德' fake.city_name() # 城市后缀:'市'、'县' fake.city_suffix() # 国家:'赞比亚'、'瑞士' fake.country() # 国家代号:'NL'、'IL' fake.country_code() # 当前国家代号:'CN' fake.current_country_code() # 当前国家:"People's Republic of China" fake.current_country() # 区:'高明'、'大兴' fake.district() # 邮政编码:'760487'、'211578' fake.postcode() # 省份:'云南省'、'甘肃省' fake.province() # 街道地址:'黄街s座'、'香港街g座' fake.street_address() # 街道名:'廖路'、'澳门路' fake.street_name() # 街道后缀:'街'、'路' fake.street_suffix()
faker.providers.company
# 'iterate integrated e-markets' fake.bs() # 口号:'Networked well-modulated instruction set' fake.catch_phrase() # 公司:'万迅电脑科技有限公司'、'太极传媒有限公司' fake.company() # 公司前缀:'新宇龙信息'、'万迅电脑' fake.company_prefix() # 公司后缀:'传媒有限公司'、'科技有限公司' fake.company_suffix()
faker.providers.internet
# ascii 格式公司邮箱:'cshao@wei.cn'、'yilei@yanyao.com' fake.ascii_company_email() # ascii 格式邮箱:'eliu@yahoo.com'、'ligao@guiyingxiuying.cn' fake.ascii_email() # ascii 格式免费邮箱:'cshao@yahoo.com'、'yqiu@yahoo.com' fake.ascii_free_email() # ascill 格式安全邮箱:'yqiu@example.com'、'lmo@example.org' fake.ascii_safe_email() # 公司邮箱:'cshao@wei.cn'、'tao59@gi.cn' fake.company_email() # 生成可指定子域级别数的 internet 域名 # domain_name() =》nichols-phillips.com # domain_name(2) =》williamson-hopkins.jackson.com fake.domain_name() # 域名单个单词:'qiu'、'litao' fake.domain_word() # 邮箱:'cshao@example.com'、'yqiu@example.com' fake.email() # 免费邮箱:'cshao@yahoo.com'、'yqiu@yahoo.com' fake.free_email() # 邮箱域:'yahoo.com'、'gmail.com' fake.free_email_domain() # 生成可指定子域级别数的 host # hostname() =》 db-01.nichols-phillips.com # hostname(0) =》 laptop-56 fake.hostname() # 请求方法:'GET'、'DELETE' fake.http_method() # 图片 url:'https://www.lorempixel.com/788/861'、'https://placeimg.com/530/995/any' fake.image_url() # ipv4:'171.174.170.81'、'95.25.112.121' fake.ipv4() # ipv6:'f728:b4fa:4248:5e3a:a5d:2f35:6baa:9455' fake.ipv6() # MAC地址:'c5:d7:14:84:f8:cf'、'9b:f4:b7:6f:47:90' fake.mac_address() # 端口号:55125、5306 fake.port_number() # 'https://www.wei.cn/explore/category/main/'、'http://wg.cn/explore/categories/terms.html'、'http://www.yongmin.cn/home.php' fake.uri() # uri 扩展:'.php'、'.html' fake.uri_extension() # path:'explore/tag'、'explore/category' fake.uri_path() # url:'https://48.cn/'、'https://xiulan.net/' fake.url() # 'cshao'、'wei76' fake.user_name()
faker.providers.job
# 职业:'列车/地铁车长'、'纸样师/车板工'
fake.job()