faker 创建模拟数据

512 阅读3分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第3篇文章,点击查看活动详情


  • 一 、 安装
pip install Faker
  • 二、使用方法

    • 导包
from faker import Faker
  • 创建Faker 对象
faker1 = Faker()
  • 本地设置 Faker('zh_CN')

    本地化设置,默认都是英文,需要其他语言,可以加入对应参数

    def faker_text(self):
        #创建Faker 对象
        # 1、通过构造函数创建
        faker1 = Faker()
        print(faker1.name())

        #2 、本地化设置,默认都是英文,需要其他语言,可以加入对应参数
        faker1 = Faker('zh_CN')
        print(faker1.name())
  • 输出结果:

  • 地址相关

    • 随机城市 faker.city()
    • 随机街道 faker.street_name()
    • 随机国家 faker.country_code()
    • 随机经度 faker.longitude()
    • 随机地址 faker.address()
    • 随机省份 faker.province()
    • 随机维度 faker.latitude()
    • 随机街道地址 faker.street_address()
    • 随机市 faker.city_suffix()
    • 随机邮政编码 faker.postcode()
    • 随机国家 faker.country()
    • 随机城市 faker.street_suffix()()
    • 随机街道后缀 faker.city()
    • 随机区 faker.district()
    • 随机城市名称 faker.city_name()
    • 随机建筑编号 faker.building_number()

    英文模式下使用faker.province() ,faker.district()faker.city_name()会报错误,错误信息:

    AttributeError: 'Generator' object has no attribute '****'

    测试源码:

from faker import Faker


class Faker_t:

        def faker_text(self):
        # 创建Faker 对象
        # 1、通过构造函数创建
        faker = Faker()

        print('英文'.center(60, '-'))
        print(faker.name())
        print(
            faker.city(),  # 随机城市
            faker.street_name(),  # 随机街道
            faker.country_code(),  # 随机国家
            faker.longitude(),  # 随机经度
            faker.address(),  # 随机地址
            # faker.province(),  # 随机省份
            faker.latitude(),  # 随机维度
            faker.street_address(),  # 随机街道地址
            faker.city_suffix(),  # 随机市
            faker.postcode(),  # 邮政编码
            faker.country(),  # 随机国家
            faker.street_suffix(),  # 随机街道后缀
            # faker.district(),  # 随机区
            # faker.city_name(),  # 随机城市名称
            faker.building_number(),  # 随机建筑编号
            sep='\n')

        # 2 、本地化设置,默认都是英文,需要其他语言,可以加入对应参数
        faker = Faker('zh_CN')

        print('中文'.center(60, '-'))
        print(faker.name())
        print(
            faker.city(),  # 随机城市
            faker.street_name(),  # 随机街道
            faker.country_code(),  # 随机国家
            faker.longitude(),  # 随机经度
            faker.address(),  # 随机地址
            faker.province(),  # 随机省份
            faker.latitude(),  # 随机维度
            faker.street_address(),  # 随机街道地址
            faker.city_suffix(),  # 随机市
            faker.postcode(),  # 邮政编码
            faker.country(),  # 随机国家
            faker.street_suffix(),  # 随机街道后缀
            faker.district(),  # 随机区
            faker.city_name(),  #随机城市名称
            faker.building_number(),    #随机建筑编号


if __name__ == '__main__':
    a = Faker_t()
    a.faker_text()

输出结果:

-----------------------------英文-----------------------------
Chad Castaneda
Port Caleb
Jacqueline Islands
NL
-46.426053
0898 Newton Isle
New Jeffrey, SC 07746
-40.948913
697 Kyle Gateway
port
83416
Jamaica
Fall
026
-----------------------------中文-----------------------------
陈洋
凤英县
李街
ER
151.233537
吉林省兰州市华龙福州街x座 769642
陕西省
-21.870116
长沙路M座
县
543498
圣马力诺
路
六枝特
武汉
B座
  • IP
fake.ipv4_private()
  • 命令提示行输入.
faker [-h] [--version] [-o output]
      [-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}]
      [-r REPEAT] [-s SEP]
      [-i {package.containing.custom_provider otherpkg.containing.custom_provider}]
      [fake] [fake argument [fake argument ...]]
  • faker:是安装在您的环境中的脚本,在开发中,您可以改用python -m faker

  • -h, :显示帮助消息--help

  • --version:显示程序的版本号

  • -o FILENAME:将输出重定向到指定的文件名

  • -l {bg_BG,cs_CZ,...,zh_CN,zh_TW}:允许使用本地化的提供程序

  • -r REPEAT:将生成指定数量的输出

  • -s SEP:将在每次生成输出后生成指定的分隔符

  • -i {my.custom_provider other.custom_provider}要使用的其他自定义提供程序的列表。请注意,这是包含 Provider 类的包的导入路径,而不是自定义 Provider 类本身。

  • fake:是要为其生成输出的假名称,例如 、 、 或name``address``text

  • [fake argument ...]:传递给 fake 的可选参数(例如,profile fake 将逗号分隔字段名称的可选列表作为第一个参数)

  • zh_CN

    • fake.administrative_unit() 省市

    • fake.building_number() 建筑楼盘号

    • fake.city() 县、市

    • fake.city_name()

    • fake.city_suffix()

    • fake.country() 国家

    • fake.country_code() 国家代码

    • fake.current_country() 国家英文名称

    • fake.current_country_code() 当前国家代码

    • fake.district() 区县

    • fake.postcode() 邮政编码

    • fake.province()省份

    • fake.street_address()街道地址

    • fake.street_name()

    • company() 随机公司名称

    • fake.company_prefix() 随机公司

    • fake.date()随机时间

    • fake.date_between_dates() 获取两个 Date 对象,并在两个给定日期之间返回一个随机日期。接受日期或日期时间对象

      • date_start – 日期
      • date_end – 日期
    • fake.date_object() 获取 1970 年 1 月 1 日到现在之间的日期对象

    • fake.ascii_company_email() 随机邮箱

    • fake.ascii_email()随机邮箱

    • fake.email()随机邮箱

    • free_email_domain() 随机邮箱后缀

    • fake.dga() 按给定日期生成域名 en.wikipedia.org/wiki/Domain…

    • domain_name(* int *)生成具有指定数量的子域级别的互联网域名。

    • hostname(水平: int = 1) → str 生成具有指定数量的子域级别的主机名。

    • http_method() 随机HTTP请求方法