我想使用Faker为测试生成一些数据。
但是我无法为单个用户生成合理的数据:
>>> from faker import Factory
>>> fake = Factory.create()
>>> fake.name()
>>> u'Tayshaun Corkery'
>>> fake.email()
>>> u'kaitlynn40@yahoo.com'
如您所见,电子邮件未反映以前生成的名称。文档说:
对方法
fake.name()
的每次调用都会产生不同的(随机)结果。 这是因为faker会转发faker.Generator.method_name()
次来电 到faker.Generator.format(method_name)
。
有没有办法在不编写额外代码的情况下生成一致的人员数据?
答案 0 :(得分:1)
您可以使用Factory_Boy。它带有内置的Faker,允许您使用先前的数据从已经生成的属性(例如名称,姓氏)中创建“惰性”属性(例如电子邮件)。
答案 1 :(得分:0)
我不敢。让我说如果有一个,显然应该是simple_profile()或seed(),但实际上并没有这样做。
我认为唯一不一致的数据是电子邮件。它自己甚至不需要花时间假装。
答案 2 :(得分:0)
我制作了一个脚本,该脚本将使用伪造者的名字和姓氏,并添加一个介于1到1000之间的随机数字,将它们放在一起以生成带有数字的伪造电子邮件,以使其看起来更合法(示例IanCartwright268 @ gmail.co.uk),这是代码
from faker import Faker # Import Faker And Random For The Random Number #
from random import *
fake = Faker('en_GB') # Sets Faker's Location To Great Britain#
fn = ((fake.first_name())) # Makes The First Name Into A Veriable #
ln = ((fake.last_name())) # Makes The Last Name Into A Veriable #
rn = str (randint(1,1000)) # Makes A Random Number From 1 To 1000 And It Used To Add A Random Number To The End Of The Email To Make It Look Legit #
email = (fn + ln + rn + "@gmail.co.uk") # Adds The First Name, Last Name And The Random Number And The Extension '@gmail.co.uk' #
print("First Name: " + fn + "\n" + "last Name: " + ln + "\n" + "Email: " + email) # Prints The Whole Output#
如果您需要更多帮助,请在Twitter @ R00T_H4X0R上给我发消息
,希望对您有所帮助。