标签搜索

ptyhon 测试数据生成

kirei
2025-05-20 / 0 评论 / 4 阅读 / 正在检测是否收录...

faker+pandas

faker 生成随机的数据,pandas 转换成表格数据使用

安装


pip install faker pandas

# 读取 excal 需要安装

# openpyxl 支持 .xlsx

# xlrd 支持 .xls

示例


import pandas as pd  # 导入 pandas,用于数据处理与导出 CSV
from faker import Faker  # 导入 Faker,用于生成随机测试数据

fake = Faker()  # 创建 Faker 实例

# 生成包含10个用户的测试数据列表
data = []
for _ in range(10):
    username = fake.email()  # 生成随机邮箱地址作为用户名
    password = fake.password()  # 生成随机密码,默认8-16位,含特殊字符等
    data.append({'username': username, 'password': password})  # 添加到数据列表中

# 使用 pandas 转换为 DataFrame 表格结构
df = pd.DataFrame(data)

# 将 DataFrame 写入 CSV 文件,不写索引列
try:
    df.to_csv('../output/test_users.csv', index=False, encoding='utf-8')
    print("生成成功#test_users.csv")
except Exception as e:
    raise print(f"生成失败#{e}")
    
# 转成 json  必须配置: orient="records"  防止中文乱码: force_ascii
# json_data = df.to_json(orient="records", force_ascii=False)

常见的 pandas api

数字类


numerify()  # 三位随机数字

random_digit()  # 0~9随机数

random_digit_not_null()  # 1~9的随机数

random_int()  # 随机数字,默认0~9999,可以通过设置min,max来设置

random_number()  # 随机数字,参数digits设置生成的数字位数

pyfloat()  # left_digits=5 #生成的整数位数,

right_digits = 2  # 生成的小数位数,

positive = True  # 是否只有正数,

pyint()  # 随机Int数字(参考random_int()参数)

pydecimal()  # 随机Decimal数字(参考pyfloat参数)

网络信息


ascii_company_email()  # 随机ASCII公司邮箱名

ascii_email()  # 随机ASCII邮箱

ascii_free_email()  # 生成免费邮箱地址(ASCII 编码)

ascii_safe_email()  # 生成安全、通用格式的 ASCII 邮箱

company_email()  # 生成公司域名邮箱

email()  # 生成随机电子邮箱

free_email()  # 生成常见的免费邮箱

free_email_domain()  # 生成免费邮箱的域名部分

safe_email()  # 安全邮箱

domain_name()  # 生成域名

domain_word()  # 域词(即,不包含后缀)

ipv4()  # 随机IP4地址

ipv6()  # 随机IP6地址

mac_address()  # 随机MAC地址

tld()  # 网址域名后缀(.com,.net.cn,等等,不包括.)

uri()  # 随机URI地址

uri_extension()  # 网址文件后缀

uri_page()  # 网址文件(不包含后缀)

uri_path()  # 网址文件路径(不包含文件名)

url()  # 随机URL地址

user_name()  # 随机用户名

image_url()  # 随机URL地址

chrome()  # 随机生成Chrome的浏览器user_agent信息

firefox()  # 随机生成FireFox的浏览器user_agent信息

internet_explorer()  # 随机生成IE的浏览器user_agent信息

opera()  # 随机生成Opera的浏览器user_agent信息

safari()  # 随机生成Safari的浏览器user_agent信息

linux_platform_token()  # 随机Linux信息

user_agent()  # 随机user_agent信息

file_extension()  # 随机文件扩展名

file_name()  # 随机文件名(包含扩展名,不包含路径)

file_path()  # 随机文件路径(包含文件名,扩展名)

mime_type()  # 随机mime Type

基础信息


ssn()  # 生成身份证号

bs()  # 随机公司服务名

company()  # 随机公司名(长)

company_prefix()  # 随机公司名(短)

company_suffix()  # 公司性质

credit_card_expire()  # 随机信用卡到期日

credit_card_full()  # 生成完整信用卡信息

credit_card_number()  # 信用卡号

credit_card_provider()  # 信用卡类型

credit_card_security_code()  # 信用卡安全码

job()  # 随机职位

first_name()  # 性

first_name_female()  # 女性名

first_name_male()  # 男性名

first_romanized_name()  # 罗马名

last_name()  # 名

last_name_female()  # 女姓

last_name_male()  # 男姓

last_romanized_name()  # 罗马姓

name()  # 随机生成全名

name_female()  # 男性全名

name_male()  # 女性全名

romanized_name()  # 罗马名

msisdn()  # 移动台国际用户识别码,即移动用户的ISDN号码

phone_number()  # 随机生成手机号

phonenumber_prefix()  # 随机生成手机号段

地理信息


city_suffix()  # 市,县

country()  # 国家

country_code()  # 国家编码

district()  # 区

geo_coordinate()  # 地理坐标

latitude()  # 地理坐标(纬度)

longitude()  # 地理坐标(经度)

postcode()  # 邮编

province()  # 省份 (zh_TW没有此方法)

address()  # 详细地址

street_address()  # 街道地址

street_name()  # 街道名

street_suffix()  # 街、路

文本信息


pystr()  # 随机字符串

random_element()  # 随机字母

random_letter()  # 随机字母

paragraph()  # 随机生成一个段落

paragraphs()  # 随机生成多个段落,通过参数nb来控制段落数,返回数组

sentence()  # 随机生成一句话

sentences()  # 随机生成多句话,与段落类似

text()  # 随机生成一篇文章(不要幻想着人工智能了,至今没完全看懂一句话是什么意思)

word()  # 随机生成词语

words()  # 随机生成多个词语,用法与段落,句子,类似

binary()  # 随机生成二进制编码

boolean()  # True/False

language_code()  # 随机生成两位语言编码

locale()  # 随机生成语言/国际 信息

md5()  # 随机生成MD5

null_boolean()  # NULL/True/False

# 随机生成密码,可选参数#length#密码长度;special_chars#是否能使用特殊字符;
# digits#是否包含数字;upper_case#是否包含大写字母;lower_case#是否包含小写字母
password()

sha1()  # 随机SHA1

sha256()  # 随机SHA256

uuid4()  # 随机UUID

时间信息


am_pm()  # AM/PM

century()  # 随机世纪

date()  # 随机日期

date_between()  # 随机生成指定范围内日期,参数#start_date,end_date取值#具体日期或者today,-30d,-30y类似

date_between_dates()  # 随机生成指定范围内日期,用法同上

date_object()  # 随机生产从1970-1-1到指定日期的随机日期。

date_this_month()  # 生成当前月内的随机日期

date_this_year()  # 生成当前年内的随机日期

date_time()  # 随机生成指定时间(1970年1月1日至今)

date_time_ad()  # 生成公元1年到现在的随机时间

date_time_between()  # 用法同dates

future_date()  # 未来日期

future_datetime()  # 未来时间

month()  # 随机月份

month_name()  # 随机月份(英文)

past_date()  # 随机生成已经过去的日期

past_datetime()  # 随机生成已经过去的时间

time()  # 随机24小时时间

timedelta()  # 随机获取时间差

time_object()  # 随机24小时时间,time对象

time_series()  # 随机TimeSeries对象

timezone()  # 随机时区

unix_time()  # 随机Unix时间

year()  # 随机年份

集合数据


profile()  # 随机生成档案信息

simple_profile()  # 随机生成简单档案信息

pyiterable()  # 生成一个随机的可迭代对象

pylist()  # 生成一个随机的 Python 列表

pyset()  # 生成一个随机的 Python 集合

pystruct()  # 生成一个包含嵌套数据结构的复杂对象

pytuple()  # 生成一个随机的 Python 元组

pydict()  # 生成一个随机的 Python 字典

其它


currency_code()  # 货币编码

color_name()  # 随机颜色名

hex_color()  # 随机HEX颜色

rgb_color()  # 随机RGB颜色

safe_color_name()  # 随机安全色名

safe_hex_color()  # 随机安全HEX颜色

isbn10()  # 随机ISBN(10位)

isbn13()  # 随机ISBN(13位)

lexify()  # 替换所有问号(“?”)带有随机字母的事件。

0

评论 (0)

取消