Python,没有生成Faker数据
Python, Faker data is not generated
我尝试使用 faker 生成虚假数据并将其写入 excel sheet 但数据未生成,仅写入了 header 行,让我知道我做错了什么
import xlsxwriter
from faker import Faker
w_data = xlsxwriter.Workbook("new_data.xlsx")
s_data = w_data.add_worksheet()
s_data.write("A1","Name")
s_data.write("B1","Email")
s_data.write("C1","SSN")
s_data.write("D1","Phone Number")
s_data.write("E1","Address")
f_data = Faker()
name=[]
email=[]
ssn=[]
phone_number=[]
address=[]
def generate_data():
name.append(f_data.name())
email.append(f_data.email())
ssn.append(f_data.ssn())
phone_number.append(f_data.phone_number())
address.append(f_data.address())
return name,email,ssn,phone_number,address
for row_num, data in range (0,1000):
s_data.write(row_num+1,0,name)
s_data.write(row_num+1,1,email)
s_data.write(row_num+1,2,ssn)
s_data.write(row_num+1,3,phone_number)
s_data.write(row_num+1,4,address)
generate_data()
w_data.close()
这会得到你想要的结果:
import xlsxwriter
from faker import Faker
w_data = xlsxwriter.Workbook("new_data.xlsx")
s_data = w_data.add_worksheet()
s_data.write("A1","Name")
s_data.write("B1","Email")
s_data.write("C1","SSN")
s_data.write("D1","Phone Number")
s_data.write("E1","Address")
f_data = Faker()
def generate_data(f_data):
name = f_data.name()
email = f_data.email()
ssn = f_data.ssn()
phone_number = f_data.phone_number()
address = f_data.address()
return name, email, ssn, phone_number, address
for i in range (0,1000):
name, email, ssn, phone_number, address = generate_data(f_data)
s_data.write(i, 0, name)
s_data.write(i, 1, email)
s_data.write(i, 2, ssn)
s_data.write(i, 3, phone_number)
s_data.write(i, 4, address)
w_data.close()
与其为姓名、电子邮件等生成 1000 个条目的列表,然后尝试一个一个地编写每个条目,我们只是重构函数以一次生成一组数据。在 for
循环中,我们调用函数并写入返回值,然后继续下一行。由于显式优于隐式,我们将 f_data
Faker 对象传递给函数,因此它不必依赖于从外界读取任何内容。
我尝试使用 faker 生成虚假数据并将其写入 excel sheet 但数据未生成,仅写入了 header 行,让我知道我做错了什么
import xlsxwriter
from faker import Faker
w_data = xlsxwriter.Workbook("new_data.xlsx")
s_data = w_data.add_worksheet()
s_data.write("A1","Name")
s_data.write("B1","Email")
s_data.write("C1","SSN")
s_data.write("D1","Phone Number")
s_data.write("E1","Address")
f_data = Faker()
name=[]
email=[]
ssn=[]
phone_number=[]
address=[]
def generate_data():
name.append(f_data.name())
email.append(f_data.email())
ssn.append(f_data.ssn())
phone_number.append(f_data.phone_number())
address.append(f_data.address())
return name,email,ssn,phone_number,address
for row_num, data in range (0,1000):
s_data.write(row_num+1,0,name)
s_data.write(row_num+1,1,email)
s_data.write(row_num+1,2,ssn)
s_data.write(row_num+1,3,phone_number)
s_data.write(row_num+1,4,address)
generate_data()
w_data.close()
这会得到你想要的结果:
import xlsxwriter
from faker import Faker
w_data = xlsxwriter.Workbook("new_data.xlsx")
s_data = w_data.add_worksheet()
s_data.write("A1","Name")
s_data.write("B1","Email")
s_data.write("C1","SSN")
s_data.write("D1","Phone Number")
s_data.write("E1","Address")
f_data = Faker()
def generate_data(f_data):
name = f_data.name()
email = f_data.email()
ssn = f_data.ssn()
phone_number = f_data.phone_number()
address = f_data.address()
return name, email, ssn, phone_number, address
for i in range (0,1000):
name, email, ssn, phone_number, address = generate_data(f_data)
s_data.write(i, 0, name)
s_data.write(i, 1, email)
s_data.write(i, 2, ssn)
s_data.write(i, 3, phone_number)
s_data.write(i, 4, address)
w_data.close()
与其为姓名、电子邮件等生成 1000 个条目的列表,然后尝试一个一个地编写每个条目,我们只是重构函数以一次生成一组数据。在 for
循环中,我们调用函数并写入返回值,然后继续下一行。由于显式优于隐式,我们将 f_data
Faker 对象传递给函数,因此它不必依赖于从外界读取任何内容。