首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我需要帮助使用faker将随机测试数据写入csv文件。

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

Stack Overflow用户
提问于 2015-03-01 09:12:35
回答 1查看 2.2K关注 0票数 1

我是Python2.7的新手,我正在尝试使用Python包将一些随机测试数据写入csv文件。我将一个随机的名字值存储到一个名为“firstNameList”的列表变量中,然后使用write_to_csv.writerow(firstNameList)将该值写入csv。

在csv文件中写出的值是\\(‘first_name’,u‘’Monica‘)

我只想要csv中的第一个名称值,例如,莫妮卡,我不想要csv中的整个字符串\(‘name’,u‘Monica’)。

我注意到我的另一个名变量firstName1的值为Loraine,这个值很适合使用。但是,当我尝试将firstName1写到csv时,输出是f_r_s t_n a_e。

我的密码在下面。

我将该值存储在List变量中,因为我希望在csv中填充几行。假设有100行随机数据。如果我将100个名字存储到名称列表变量中,那么我可以使用for循环遍历列表,并将值输出到csv文件中。然后,我会做同样的地址,电子邮件,电话等。

代码语言:javascript
运行
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-01 12:49:45

在列表中的firstNameList变量中有一个元组。你必须提取随机的名字,比如:

代码语言:javascript
运行
复制
firstNameList[0][1]

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

代码语言:javascript
运行
复制
write_to_csv.writerow((firstNameList[0][1],))

所以脚本就像:

代码语言:javascript
运行
复制
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文件,如下所示:

代码语言:javascript
运行
复制
id, TITLE, FNAME, SNAME, GENDER, ADD1, ADD2, ADD3, ADD4, PCODE, PHONE, MOBILE, DOB
Dana
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28791853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档