我是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文件中。然后,我会做同样的地址,电子邮件,电话等。
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)发布于 2015-03-01 12:49:45
在列表中的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
Danahttps://stackoverflow.com/questions/28791853
复制相似问题