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 对象传递给函数,因此它不必依赖于从外界读取任何内容。