我需要一些帮助使用 faker 将随机测试数据写入 csv 文件

I need some help Write random test data to csv file using faker

我是 Python 2.7 的新手 我正在尝试使用 Python faker 包将一些随机测试数据写入 csv 文件。 我已将随机名字值存储到名为 'firstNameList' 的 List 变量中 然后我使用 write_to_csv.writerow(firstNameList)

将值写入 csv

csv文件中写出的值是 |('first_name', 你'莫妮卡')|

我只想要 csv 中的名字值,例如莫妮卡 我不想要整个字符串 |('first_name', u'Monica')|在 csv.

我注意到我的另一个名字变量 firstName1 的值为 Loraine 这个会很好用。但是当我尝试将 firstName1 写入 csv 时,输出是 f i r s t _ n a m e

我的代码如下。
我将值存储在 List 变量中,因为我想在 csv 中填充几行。假设 100 行随机数据。 如果我将 100 个名字存储到名称列表变量中,然后我可以使用 for 循环遍历列表并将值输出到 csv 文件。 然后我会对地址、电子邮件、phone 等做同样的事情

from faker.factory import Factory
import csv

def writeTo_csv(fake):
    with open('test.csv', 'wb') as csvfile:
    write_to_csv = csv.writer(csvfile, delimiter=' ', quotechar='|',     quoting=csv.QUOTE_MINIMAL)
    write_to_csv.writerow(['id,', 'TITLE,', 'FNAME,', 'SNAME,', 'GENDER,',     'ADD1,', 'ADD2,', 'ADD3,', 'ADD4,', 'PCODE,', 'PHONE,', 'MOBILE,', 'DOB'])
    firstName1 = "first_name"
    firstNameList = [(firstName1, getattr(fake, firstName1)())]
    print "%s = %s" % (firstName1, getattr(fake, firstName1)())
    print firstNameList
    write_to_csv.writerow(firstName1)

if __name__ == "__main__":
fake = Factory.create('en_GB')
writeTo_csv(fake)

您在列表中有一个元组,在 firstNameList 变量中。您必须提取随机名称,例如:

firstNameList[0][1]

打印时,writerow() 接受一个可迭代的数据结构,并使用构造函数中指定的分隔符分隔每个元素,因此如果您传递一个字符串,它会将每个字母假定为一个字段,您必须创建一个列表或一个包含你所有名字的元组,将它们正确分开。在下面的示例中,我使用了一个元组,例如:

write_to_csv.writerow((firstNameList[0][1],))

所以脚本如下:

from faker.factory import Factory
import csv 

def writeTo_csv(fake):
    with open('test.csv', 'wb') as csvfile:
        write_to_csv = csv.writer(csvfile, delimiter=' ', quotechar='|',     quoting=csv.QUOTE_MINIMAL)
        write_to_csv.writerow(['id,', 'TITLE,', 'FNAME,', 'SNAME,', 'GENDER,',     'ADD1,', 'ADD2,', 'ADD3,', 'ADD4,', 'PCODE,', 'PHONE,', 'MOBILE,', 'DOB'])
        firstName1 = "first_name"
        firstNameList = [(firstName1, getattr(fake, firstName1)())]
        print "%s = %s" % (firstName1, getattr(fake, firstName1)())
        print firstNameList
        write_to_csv.writerow((firstNameList[0][1],))

if __name__ == "__main__":
    fake = Factory.create('en_GB')
    writeTo_csv(fake)

这会产生一个 test.csv 文件,例如:

id, TITLE, FNAME, SNAME, GENDER, ADD1, ADD2, ADD3, ADD4, PCODE, PHONE, MOBILE, DOB
Dana