Python中使用Faker创建虚拟数据

在我们的博客中, 记录了我们在开发过程中所使用的技术和遇到的问题, 希望作为其他开发和设计者的一个学习交流平台.

Python中使用Faker创建虚拟数据


在测试数据库时, 我们经常会需要用到假数据来支持代码的运行. 本篇就介绍一下Faker, Faker的唯一功能就是生成半随机的虚假数据, 例如名字, 地址, 域名, 段落等.

创建virtualenv, 并安装Faker:

    mkvirtualenv test
    pip install fake-factory

创建假名字:

    from faker import Factory

    #----------------------------------------------------------------------
    def create_names(fake):
        """"""
        for i in range(10):
            print fake.name()

    if __name__ == "__main__":
        fake = Factory.create()
        create_names(fake)

得到不同的名字, (你得到的应该与我不同):

    Mrs. Terese Walter MD
    Jess Mayert
    Ms. Katerina Fisher PhD
    Mrs. Senora Purdy PhD
    Gretchen Tromp
    Winnie Goodwin
    Yuridia McGlynn MD
    Betty Kub
    Nolen Koelpin
    Adilene Jerde

不希望名字中含有铅坠河后缀:

    from faker import Factory

    #----------------------------------------------------------------------
    def create_names2(fake):
        """"""
        for i in range(10):
            name = "%s %s" % (fake.first_name(),
                              fake.last_name())
            print name

    if __name__ == "__main__":
        fake = Factory.create()
        create_names2(fake)

接下来我们看如何生成其他虚假数据:

    from faker import Factory

    #----------------------------------------------------------------------
    def create_fake_stuff(fake):
        """"""
        stuff = ["email", "bs", "address",
                 "city", "state",
                 "paragraph"]
        for item in stuff:
            print "%s = %s" % (item, getattr(fake, item)())

    if __name__ == "__main__":
        fake = Factory.create()
        create_fake_stuff(fake)

你可能会得到以下信息:

    email = pacocha.aria@kris.com
    bs = reinvent collaborative systems
    address = 57188 Leuschke Mission
    Lake Jaceystad, KY 46291
    city = West Luvinialand
    state = Oregon
    paragraph = Possimus nostrum exercitationem harum eum in. Dicta aut off

Faker中还有许多其他方法没有在这里提及到, 你可以自行查看其文档.


原文链接: http://weiguda.com/blog/60/