什么是 Python Mimesis?
Python Mimesis 是一个用于生成各种类型假数据的 Python 库。它提供了丰富多样的数据生成器,包括姓名、地址、日期、时间、文本、图像等,能够满足各种不同类型数据的需求。Mimesis 提供了简单而强大的 API,使得用户可以轻松地生成任意数量的假数据,并可以根据需要进行定制和配置。
安装 Mimesis
要开始使用 Mimesis,首先需要安装它。
可以通过命令来安装 Mimesis:
# pip
pip install mimesis
# pdm
pdm add mimesis
支持语言
| Country | Code | Associated attribute | Name | Native Name |
|---|---|---|---|---|
| 🇦🇪 | ar-ae | Locale.AR_AE | Arabic U.A.E | العربية |
| 🇩🇿 | ar-dz | Locale.AR_DZ | Arabic Algeria | العربية |
| 🇪🇬 | ar-eg | Locale.AR_EG | Arabic Egypt | العربية |
| 🇯🇴 | ar-jo | Locale.AR_JO | Arabic Jordan | العربية |
| 🇰🇼 | ar-kw | Locale.AR_KW | Arabic Kuwait | العربية |
| 🇲🇦 | ar-ma | Locale.AR_MA | Arabic Morocco | العربية |
| 🇴🇲 | ar-om | Locale.AR_OM | Arabic Oman | العربية |
| 🇶🇦 | ar-qa | Locale.AR_QA | Arabic Qatar | العربية |
| 🇸🇦 | ar-sa | Locale.AR_SA | Arabic Saudi Arabia | العربية |
| 🇸🇾 | ar-sy | Locale.AR_SY | Arabic Syria | العربية |
| 🇹🇳 | ar-tn | Locale.AR_TN | Arabic Tunisia | العربية |
| 🇾🇪 | ar-ye | Locale.AR_YE | Arabic Yemen | العربية |
| 🇨🇿 | cs | Locale.CS | Czech | Česky |
| 🇩🇰 | da | Locale.DA | Danish | Dansk |
| 🇩🇪 | de | Locale.DE | German | Deutsch |
| 🇦🇹 | de-at | Locale.DE_AT | Austrian German | Deutsch |
| 🇨🇭 | de-ch | Locale.DE_CH | Swiss German | Deutsch |
| 🇬🇷 | el | Locale.EL | Greek | Ελληνικά |
| 🇺🇸 | en | Locale.EN | English | English |
| 🇦🇺 | en-au | Locale.EN_AU | Australian English | English |
| 🇨🇦 | en-ca | LocALE.EN_CA | Canadian English | English |
| 🇬🇧 | en-gb | Locale.EN_GB | British English | English |
| 🇪🇸 | es | Locale.ES | Spanish | Español |
| 🇲🇽 | es-mx | Locale.ES_MX | Mexican Spanish | Español |
| 🇪🇪 | et | Locale.ET | Estonian | Eesti |
| 🇮🇷 | fa | Locale.FA | Farsi | فارسی |
| 🇫🇮 | fi | Locale.FI | Finnish | Suomi |
| 🇫🇷 | fr | Locale.FR | French | Français |
| 🇭🇷 | hr | Locale.HR | Croatian | Hrvatski |
| 🇭🇺 | hu | Locale.HU | Hungarian | Magyar |
| 🇮🇸 | is | Locale.IS | Icelandic | Íslenska |
| 🇮🇹 | it | Locale.IT | Italian | Italiano |
| 🇯🇵 | ja | Locale.JA | Japanese | 日本語 |
| 🇰🇿 | kk | Locale.KK | Kazakh | Қазақша |
| 🇰🇷 | ko | Locale.KO | Korean | 한국어 |
| 🇳🇱 | nl | Locale.NL | Dutch | Nederlands |
| 🇧🇪 | nl-be | Locale.NL_BE | Belgium Dutch | Nederlands |
| 🇳🇴 | no | Locale.NO | Norwegian | Norsk |
| 🇵🇱 | pl | Locale.PL | Polish | Polski |
| 🇵🇹 | pt | Locale.PT | Portuguese | Português |
| 🇧🇷 | pt-br | Locale.PT_BR | Brazilian Portuguese | Português Brasileiro |
| 🇷🇺 | ru | Locale.RU | Russian | Русский |
| 🇸🇰 | sk | Locale.SK | Slovak | Slovensky |
| 🇸🇪 | sv | Locale.SV | Swedish | Svenska |
| 🇹🇷 | tr | Locale.TR | Turkish | Türkçe |
| 🇺🇦 | uk | Locale.UK | Ukrainian | Українська |
| 🇨🇳 | zh | Locale.ZH | Chinese | 汉语 |
枚举(enums)
| 用途 | 方法名 | 枚举值 | 中文示意 |
|---|---|---|---|
| 提供 IPv4 地址范围 | IPv4Purpose | THIS_NETWORK, AMT, LOOBACK, AS112_V4, LINK_LOCAL, TEST_NET_1, TEST_NET_2, TEST_NET_3, BENCHMARKING, PRIVATE_USE_1, PRIVATE_USE_2, PRIVATE_USE_3, RESERVED, SHARE_ADDRESS_SPACE, LIMITED_BROADCAST, IPV4_DUMMY_ADDRESS, TURN_RELAY_ANYCAST, IETF_PROTOCOL_ASSIGNMENTS, PORT_CONTROL_PROTOCOL_ANYCAST, IPV4_SERVICE_CONTINUITY_PREFIX, DIRECT_DELEGATION_AS112_SERVICE | 当前网络, AMT 网络, 回环地址, AS112 V4, 链路本地地址, 测试网络1, 测试网络2, 测试网络3, 基准测试, 私有使用1, 私有使用2, 私有使用3, 保留地址, 共享地址空间, 有限广播地址, IPv4虚拟地址, 转发中继任播地址, IETF协议分配, 端口控制协议任播地址, IPv4服务连续性前缀, 直接委托AS112服务地址 |
| 表示持续时间单位 | DurationUnit | WEEKS, DAYS, HOURS, MINUTES, SECONDS, MILLISECONDS, MICROSECONDS | 周, 天, 小时, 分钟, 秒, 毫秒, 微秒 |
| 提供支持的区域设置 | Locale | AR_AE, AR_DZ, AR_EG, AR_JO, AR_OM, AR_SY, AR_YE, CS, DA, DE, DE_AT, DE_CH, EL, EN, EN_AU, EN_CA, EN_GB, ES, ES_MX, ET, FA, FI, FR, HU, HR, IS, IT, JA, KK, KO, NL, NL_BE, NO, PL, PT, PT_BR, RU, SK, SV, TR, UK, ZH, DEFAULT | 阿拉伯语(阿联酋), 阿拉伯语(阿尔及利亚), 阿拉伯语(埃及), 阿拉伯语(约旦), 阿拉伯语(阿曼), 阿拉伯语(叙利亚), 阿拉伯语(也门), 捷克语, 丹麦语, 德语, 德语(奥地利), 德语(瑞士), 希腊语, 英语, 英语(澳大利亚), 英语(加拿大), 英语(英国), 西班牙语, 西班牙语(墨西哥), 爱沙尼亚语, 波斯语, 芬兰语, 法语, 匈牙利语, 克罗地亚语, 冰岛语, 意大利语, 日语, 哈萨克语, 韩语, 荷兰语, 荷兰语(比利时), 挪威语, 波兰语, 葡萄牙语, 葡萄牙语(巴西), 俄语, 斯洛伐克语, 瑞典语, 土耳其语, 乌克兰语, 中文, 默认语言 |
| 表示端口范围 | PortRange | ALL, WELL_KNOWN, EPHEMERAL, REGISTERED | 所有端口, 知名端口, 临时端口, 已注册端口 |
| 表示性别 | Gender | MALE, FEMALE | 男性, 女性 |
| 表示标题类型 | TitleType | TYPICAL, ACADEMIC | 典型头衔, 学术头衔 |
| 提供信用卡类型 | CardType | VISA, MASTER_CARD, AMERICAN_EXPRESS | 维萨卡, 万事达卡, 美国运通卡 |
| 表示哈希算法 | Algorithm | MD5, SHA1, SHA224, SHA256, SHA384, SHA512, BLAKE2B, BLAKE2S | MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, BLAKE2b, BLAKE2s |
| 提供顶级域名类型 | TLDType | CCTLD, GTLD, GEOTLD, UTLD, STLD | 国家代码顶级域, 通用顶级域, 地理顶级域, 未分类顶级域, 子顶级域 |
| 表示文件类型 | FileType | SOURCE, TEXT, DATA, AUDIO, VIDEO, IMAGE, EXECUTABLE, COMPRESSED | 源代码文件, 文本文件, 数据文件, 音频文件, 视频文件, 图像文件, 可执行文件, 压缩文件 |
| 表示常见的 MIME 类型 | MimeType | APPLICATION, AUDIO, IMAGE, MESSAGE, TEXT, VIDEO | 应用程序数据, 音频流, 图像数据, 消息内容, 文本内容, 视频流 |
| 表示公制前缀符号 | MetricPrefixSign | POSITIVE, NEGATIVE | 正号, 负号 |
| 表示国家代码类型 | CountryCode | A2, A3, NUMERIC, IOC, FIFA | 两位字母代码, 三位字母代码, 数字代码, 国际奥委会代码, 国际足联代码 |
| 表示 ISBN 格式 | ISBNFormat | ISBN13, ISBN10 | ISBN-13 格式, ISBN-10 格式 |
| 表示 EAN 格式 | EANFormat | EAN8, EAN13 | EAN-8 条码格式, EAN-13 条码格式 |
| 提供度量单位名称 | MeasureUnit | MASS, INFORMATION, THERMODYNAMIC_TEMPERATURE, AMOUNT_OF_SUBSTANCE, ANGLE, SOLID_ANGLE, FREQUENCY, FORCE, PRESSURE, ENERGY, POWER, FLUX, ELECTRIC_CHARGE, VOLTAGE, ELECTRIC_CAPACITANCE, ELECTRIC_RESISTANCE, ELECTRICAL_CONDUCTANCE, MAGNETIC_FLUX, MAGNETIC_FLUX_DENSITY, INDUCTANCE, TEMPERATURE, RADIOACTIVITY | 质量单位, 信息单位, 热力学温度单位, 物质的量单位, 角度单位, 立体角单位, 频率单位, 力的单位, 压强单位, 能量单位, 功率单位, 通量单位, 电荷单位, 电压单位, 电容单位, 电阻单位, 电导单位, 磁通量单位, 磁感应强度单位, 电感单位, 温度单位, 放射性单位 |
| 表示数字类型 | NumType | FLOAT, INTEGER, COMPLEX, DECIMAL | 浮点数, 整数, 复数, 十进制数 |
| 表示视频文件类型 | VideoFile | MP4, MOV | MP4 视频文件, MOV 视频文件 |
| 表示音频文件类型 | AudioFile | MP3, AAC | MP3 音频文件, AAC 音频文件 |
| 表示图像文件类型 | ImageFile | JPG, PNG, GIF | JPG 图像文件, PNG 图像文件, GIF 图像文件 |
| 表示文档文件类型 | DocumentFile | PDF, DOCX, PPTX, XLSX | PDF 文档文件, Word 文档文件, PowerPoint 演示文稿文件, Excel 电子表格文件 |
| 表示压缩文件类型 | CompressedFile | ZIP, GZIP | ZIP 压缩文件, GZIP 压缩文件 |
| 表示 URL 方案 | URLScheme | WS, WSS, FTP, SFTP, HTTP, HTTPS | WebSocket, WebSocket Secure, 文件传输协议, 安全文件传输协议, 超文本传输协议, 安全超文本传输协议 |
| 表示时区区域 | TimezoneRegion | AFRICA, AMERICA, ANTARCTICA, ARCTIC, ASIA, ATLANTIC, AUSTRALIA, EUROPE, INDIAN, PACIFIC | 非洲时区, 美洲时区, 南极洲时区, 北极地区时区, 亚洲时区, 大西洋时区, 澳大利亚时区, 欧洲时区, 印度洋时区, 太平洋时区 |
| 表示 DSN(Data Source Name)类型 | DSNType | POSTGRES, MYSQL, MONGODB, REDIS, COUCHBASE, MEMCACHED, RABBITMQ | PostgreSQL 数据库, MySQL 数据库, MongoDB 数据库, Redis 缓存, Couchbase 缓存, Memcached 缓存, RabbitMQ 消息队列 |
| 表示时间戳格式 | TimestampFormat | POSIX, ISO_8601, RFC_3339 | POSIX 时间戳, ISO 8601 标准时间戳, RFC 3339 标准时间戳 |
| 表示表情符号类别 | EmojyCategory | DEFAULT, SMILEYS_AND_EMOTION, PEOPLE_AND_BODY, ANIMALS_AND_NATURE, FOOD_AND_DRINK, TRAVEL_AND_PLACES, ACTIVITIES, OBJECTS, SYMBOLS, FLAGS | 默认类别, 微笑和情绪, 人物与身体, 动物与自然, 食物与饮料, 旅行与地点, 活动, 物品, 符号, 旗帜 |
生成数据类型
| 序号 | 提供类 | 注释 |
|---|---|---|
| 1 | Address | 地址数据 (街道地址, 城市, 国家等) |
| 2 | Base | 随机 |
| 3 | BinaryFile | 二进制文件数据 (图片文件等) |
| 4 | Finance | 金融数据 (银行名称, 公司类型等) |
| 5 | [Choice](#随机选择 (Choice)) | 随机选择器 (从列表中随机选值) |
| 6 | Code | 编码数据 (PIN 码, ISBN 等) |
| 7 | Datetime | 日期时间数据 (随机日期, 随机时间等) |
| 8 | Development | 开发相关数据 (项目名, 软件许可证等) |
| 9 | File | 文件相关数据 (文件名, 扩展名等) |
| 10 | Food | 食物相关数据 (水果, 饮料等) |
| 11 | Hardware | 硬件相关数据 (屏幕分辨率, 硬盘类型等) |
| 12 | Internet | 网络相关数据 (IPv4 地址, URL 等) |
| 13 | Numeric | 数字相关数据 (整数, 浮点数等) |
| 14 | Path | 路径相关数据 (根目录, 用户目录等) |
| 15 | Payment | 支付相关数据 (信用卡号, PayPal 账户等) |
| 16 | Person | 人物相关数据 (姓名, 电话号码等) |
| 17 | Science) | 科学相关数据 (DNA 序列, 单位等) |
| 18 | Text | 文本相关数据 (单词, 句子, Emoji 表情等) |
| 19 | Transport | 交通相关数据 (汽车型号, 飞机型号等) |
| 20 | Cryptographic | 加密相关数据 (UUID, 密码哈希等) |
地址(Address)
"""
此脚本演示如何使用 mimesis 库中的 Address 类
生成各种地址相关数据,并以 JSON 格式输出结果。
"""
import json
from mimesis import Locale
from mimesis import Address
from mimesis.enums import CountryCode
def main():
"""
主函数,用于生成地址相关数据并以 JSON 格式打印输出。
"""
# 实例化 Address 类,用于生成地址相关的模拟数据
address = Address(locale=Locale.ZH)
# 调用 Address 类的各个方法,将生成的数据存储在字典中,键为中文名称
data = {
"街道号": address.street_number(),
"街道名称": address.street_name(),
"街道后缀": address.street_suffix(),
"地址": address.address(),
"州": address.state(),
"地区": address.region(),
"省份": address.province(),
"联邦主体": address.federal_subject(),
"行政区": address.prefecture(),
"邮政编码": address.postal_code(),
"邮政区号": address.zip_code(),
"国家代码": address.country_code(code=CountryCode.A2),
"国家代码(备用1)": address.country_code(code=CountryCode.A3),
"国家代码(备用2)": address.country_code(code=CountryCode.NUMERIC),
"国家代码(备用3)": address.country_code(code=CountryCode.IOC),
"国家代码(备用4)": address.country_code(code=CountryCode.FIFA),
"国家 emoji 旗帜": address.country_emoji_flag(),
"默认国家": address.default_country(),
"国家": address.country(),
"城市": address.city(),
"纬度": address.latitude(),
"经度": address.longitude(),
"坐标": address.coordinates(),
"大洲": address.continent(),
"国际电话区号": address.calling_code(),
"国际电话区号(备用)": address.isd_code(),
"机场 IATA 代码": address.iata_code(),
"机场 ICAO 代码": address.icao_code()
}
# 将结果转换为 JSON 格式,indent=4 表示使用 4 个空格进行缩进,ensure_ascii=False 确保汉字正常显示
json_data = json.dumps(data, indent=4, ensure_ascii=False)
# 打印 JSON 格式的数据
print(json_data)
if __name__ == "__main__":
# 当脚本作为主程序运行时,调用 main 函数
main()
输出
{
"街道号": "84",
"街道名称": "黄鹤楼",
"街道后缀": "条",
"地址": "西马街1068号",
"州": "湖北省",
"地区": "上海市",
"省份": "辽宁省",
"联邦主体": "云南省",
"行政区": "湖南省",
"邮政编码": "137120",
"邮政区号": "421593",
"国家代码": "TR",
"国家代码(备用1)": "PLW",
"国家代码(备用2)": "254",
"国家代码(备用3)": "IRI",
"国家代码(备用4)": "MOZ",
"国家 emoji 旗帜": "🇩🇪",
"默认国家": "中華民國",
"国家": "哥伦比亚",
"城市": "衢州市",
"纬度": -65.040489,
"经度": 115.948233,
"坐标": {
"longitude": -94.150593,
"latitude": -84.107498
},
"大洲": "欧洲",
"国际电话区号": "+248",
"国际电话区号(备用)": "+973",
"机场 IATA 代码": "LAD",
"机场 ICAO 代码": "EDAH"
}
随机(Base)
import json
from pathlib import Path
from mimesis import BaseProvider,BaseDataProvider
from mimesis.enums import CountryCode
def main():
"""
主函数,用于生成地址相关数据并以 JSON 格式打印输出。
"""
# 实例化 Address 类,用于生成地址相关的模拟数据
baseprovider = BaseProvider()
basedataprovider= BaseDataProvider()
# 准备要更新的数据
data = {
"重新设置随机种子": baseprovider.reseed(seed=123),
"验证枚举": baseprovider.validate_enum(item=None, enum=CountryCode),
"读取全局文件": json.load(open(Path(__file__).parent / "countries.json")),
"检查种子": baseprovider._has_seed(),
"字符串表示": str(baseprovider),
"当前地区": basedataprovider._extract(["country", "name"]),
"更新数据集": basedataprovider._update_dict({"country": "中国", "name": "北京"}, {"name": "上海"}),
"加载数据集": basedataprovider._load_dataset(),
"提取数据集": basedataprovider.update_dataset({"country": "中国", "name": "北京"}),
"获取当前区域": basedataprovider.get_current_locale(),
"覆盖区域设置": basedataprovider._override_locale(),
"临时覆盖区域": None, # 上下文管理器无法直接存储在字典中
"字符串表示": str(basedataprovider)
}
# 单独使用override_locale上下文管理器
with basedataprovider.override_locale('zh') as provider:
temp_data = {
"临时覆盖区域示例": str(provider)
}
print(json.dumps(temp_data, indent=4, ensure_ascii=False))
# 将结果转换为 JSON 格式,indent=4 表示使用 4 个空格进行缩进,ensure_ascii=False 确保汉字正常显示
json_data = json.dumps(data, indent=4, ensure_ascii=False)
# 打印 JSON 格式的数据
print(json_data)
if __name__ == "__main__":
# 当脚本作为主程序运行时,调用 main 函数
main()
输出
{
"临时覆盖区域示例": "BaseDataProvider <Locale.ZH>"
}
{
"重新设置随机种子": null,
"验证枚举": "a2",
"读取全局文件": {
"countries": [
{
"code": "CN",
"name": "中国",
"capital": "北京",
"region": "亚洲",
"population": 1400000000
},
{
"code": "US",
"name": "美国",
"capital": "华盛顿",
"region": "北美洲",
"population": 331000000
},
{
"code": "JP",
"name": "日本",
"capital": "东京",
"region": "亚洲",
"population": 126000000
},
{
"code": "DE",
"name": "德国",
"capital": "柏林",
"region": "欧洲",
"population": 83000000
},
{
"code": "BR",
"name": "巴西",
"capital": "巴西利亚",
"region": "南美洲",
"population": 213000000
}
]
},
"检查种子": true,
"字符串表示": "BaseDataProvider <Locale.EN>",
"当前地区": null,
"更新数据集": {
"country": "中国",
"name": "上海"
},
"加载数据集": null,
"提取数据集": null,
"获取当前区域": "en",
"覆盖区域设置": null,
"临时覆盖区域": null
}
文件(binaryfile)
from mimesis import BinaryFile
def main():
binary_file = BinaryFile()
# 接收音频文件数据并写入
audio_data = binary_file.audio()
with open('sample.mp3', 'wb') as f:
f.write(audio_data)
# 接收图片文件数据并写入
image_data = binary_file.image()
with open('sample.png', 'wb') as f:
f.write(image_data)
# 接收视频文件数据并写入
video_data = binary_file.video()
with open('sample.mp4', 'wb') as f:
f.write(video_data)
# 接收文档文件数据并写入
document_data = binary_file.document()
with open('sample.pdf', 'wb') as f:
f.write(document_data)
# 接收压缩文件数据并写入
compressed_data = binary_file.compressed()
with open('sample.zip', 'wb') as f:
f.write(compressed_data)
if __name__ == '__main__':
main()
输出
会将数据输出到当前文件夹内
随机选择 (Choice)
from mimesis import Choice
def main():
choice = Choice()
# 从列表中随机选择一个元素
random_item = choice(items=['apple', 'banana', 'cherry'])
print(random_item)
#从字符串中随机选择一个字符
random_char = choice(items='hello')
print(random_char)
#生成一个指定长度的随机序列
random_sequence = choice(items=[1, 2, 3, 4, 5], length=3)
print(random_sequence)
#生成一个包含唯一元素的随机序列
unique_sequence = choice(items=[1, 2, 3, 4, 5], length=3, unique=True)
print(unique_sequence)
if __name__ == '__main__':
main()
输出
apple
e
[5, 5, 1]
[5, 1, 2]
商品码(code)
from mimesis import Code
from mimesis.enums import ISBNFormat, EANFormat
from mimesis.locales import Locale
# 初始化 Code 类
code_provider = Code()
# 生成随机的区域代码 (MS-LCID)
locale_code = code_provider.locale_code()
print(f"Locale Code: {locale_code}")
# 生成 ISSN (国际标准期刊号)
issn = code_provider.issn(mask="####-####")
print(f"ISSN: {issn}")
# 生成 ISBN (国际标准图书编号) 根据指定的格式和语言环境
isbn = code_provider.isbn(fmt=ISBNFormat.ISBN13, locale=Locale.EN)
print(f"ISBN: {isbn}")
# 生成 EAN (欧洲商品条码) 根据指定的格式
ean = code_provider.ean(fmt=EANFormat.EAN13)
print(f"EAN: {ean}")
# 生成 IMEI (国际移动设备识别码)
imei = code_provider.imei()
print(f"IMEI: {imei}")
# 生成 PIN (个人识别号码)
pin = code_provider.pin(mask="####")
print(f"PIN: {pin}")
输出
Locale Code: en-za
ISSN: 6583-0070
ISBN: 077-1-57043-544-2
EAN: 2517462504805
IMEI: 358387066690974
PIN: 5599
加密(Cryptographic)
from mimesis import Cryptographic
from mimesis.enums import Algorithm
# 初始化 Cryptographic 类
crypto = Cryptographic()
# 生成 UUID 对象和字符串
uuid_obj = crypto.uuid_object()
print(f"UUID Object: {uuid_obj}")
uuid_str = crypto.uuid()
print(f"UUID String: {uuid_str}")
# 生成哈希值 (支持算法: md5, sha1, sha256 等)
hash_value = crypto.hash(algorithm=Algorithm.SHA256)
print(f"Hash Value (SHA-256): {hash_value}")
# 生成随机字节
token_bytes = crypto.token_bytes(entropy=16)
print(f"Token Bytes: {token_bytes}")
# 生成十六进制 Token
token_hex = crypto.token_hex(entropy=16)
print(f"Token Hex: {token_hex}")
# 生成 URL 安全的 Token
token_urlsafe = crypto.token_urlsafe(entropy=16)
print(f"Token URL Safe: {token_urlsafe}")
# 生成助记词短语
mnemonic_phrase = crypto.mnemonic_phrase()
print(f"Mnemonic Phrase: {mnemonic_phrase}")
输出
UUID Object: 19d013f6-ea5d-473e-93d0-02d055a8ee52
UUID String: 35fc9b4d-145e-43af-bd94-69796b8ce488
Hash Value (SHA-256): 599490969486234dac231708dc7af20dfebaca72c40e36d1e49e9e039f3b6cc9
Token Bytes: b"H\x8f\xa6'!3`\xc0\xa7W\x19\x9d\xa9\xd4^\x06"
Token Hex: 034126b01f5cc322badf5ae2c1d8c952
Token URL Safe: igjkZ3euvF7S8hLfARK8Ew
Mnemonic Phrase: slam woman used truly thunder shy repair learn pride pencil town nut
时间(Datetime)
from mimesis import Datetime
from mimesis.enums import TimestampFormat,DurationUnit
# 初始化 Datetime 提供者
datetime_provider = Datetime()
# 1. 生成一个随机日期对象
random_date = datetime_provider.date(start=2020, end=2023)
print("Random Date:", random_date)
# 2. 生成一个格式化的日期字符串
formatted_date = datetime_provider.formatted_date(fmt="%Y-%m-%d")
print("Formatted Date:", formatted_date)
# 3. 生成一个随机时间对象
random_time = datetime_provider.time()
print("Random Time:", random_time)
# 4. 生成一个格式化的时间字符串
formatted_time = datetime_provider.formatted_time(fmt="%H:%M:%S")
print("Formatted Time:", formatted_time)
# 5. 生成一个随机年份
random_year = datetime_provider.year(minimum=2000, maximum=2023)
print("Random Year:", random_year)
# 6. 生成一个随机月份名称
random_month = datetime_provider.month(abbr=False) # 设置 abbr=True 可以获取缩写
print("Random Month:", random_month)
# 7. 生成一个随机星期几
random_day_of_week = datetime_provider.day_of_week(
abbr=False
) # 设置 abbr=True 可以获取缩写
print("Random Day of Week:", random_day_of_week)
# 8. 生成一个随机时区
print("Random Timezone:", datetime_provider.timezone())
# 9. 生成一个 GMT 偏移量
print("GMT Offset:", datetime_provider.gmt_offset())
# 10. 生成一个 POSIX 时间戳
print("POSIX Timestamp:", datetime_provider.timestamp(fmt=TimestampFormat.POSIX))
# 11. 生成一个 ISO 8601 格式的时间戳
print("ISO 8601 Timestamp:", datetime_provider.timestamp(fmt=TimestampFormat.ISO_8601))
# 12. 生成一个持续时间(timedelta)
duration = datetime_provider.duration(
min_duration=1, max_duration=10, duration_unit=DurationUnit.MINUTES
)
print("Duration:", duration)
输出
Random Date: 2021-05-06
Formatted Date: 2011-08-01
Random Time: 04:22:09.214001
Formatted Time: 02:50:29
Random Year: 2017
Random Month: February
Random Day of Week: Wednesday
Random Timezone: Atlantic/Reykjavik
GMT Offset: UTC -02:00
POSIX Timestamp: 1748365152
ISO 8601 Timestamp: 2025-10-27T23:50:58.716021
Duration: 0:04:00
软件开发(Development)
from mimesis import Development
# 创建 Development 类的实例
dev = Development()
# 调用所有方法并输出生成的虚假数据
print("软件许可证:", dev.software_license()) # 生成一个随机的软件许可证名称
print("日历版本号:", dev.calver()) # 生成一个基于日历的版本号
print("语义化版本号:", dev.version()) # 生成一个符合语义化版本规范的版本号
print("开发阶段:", dev.stage()) # 获取一个随机的开发阶段(如 Alpha、Beta)
print("编程语言:", dev.programming_language()) # 随机选择一种编程语言
print("操作系统:", dev.os()) # 随机选择一个操作系统或发行版名称
print("布尔值:", dev.boolean()) # 生成一个随机的布尔值 (True 或 False)
print("系统质量属性:", dev.system_quality_attribute()) # 生成一个系统质量属性
print("ility 别名:", dev.ility())
输出
软件许可证: The BSD 2-Clause License
日历版本号: 2022.12.9
语义化版本号: 9.87.83
开发阶段: RC
编程语言: Haskell
操作系统: Mint
布尔值: True
系统质量属性: usability
ility 别名: manageability
文件名(File)
from mimesis import File
# 指定文件类型(例如文本文件)
from mimesis.enums import FileType, MimeType
file_provider = File()
# 生成任意文件类型的扩展名
ext = file_provider.extension()
print("扩展名:", ext)
ext_txt = file_provider.extension(file_type=FileType.TEXT)
print("文本文件扩展名:", ext_txt)
# 生成任意 MIME 类型
mime = file_provider.mime_type()
print("MIME类型:", mime)
mime_text = file_provider.mime_type(type_=MimeType.TEXT)
print("文本MIME类型:", mime_text)
# 生成随机文件大小,默认范围是 1 到 100
size_random = file_provider.size()
print("文件大小:", size_random)
# 自定义范围
custom_size = file_provider.size(minimum=10, maximum=50)
print("自定义文件大小:", custom_size)
# 生成带有随机扩展名的文件名
filename = file_provider.file_name()
print("文件名:", filename)
# 指定文件类型(例如图片)
image_filename = file_provider.file_name(file_type=FileType.IMAGE)
print("图片文件名:", image_filename)
输出
扩展名: .flac
文本文件扩展名: .log
MIME类型: image/vnd.sealed.png
文本MIME类型: text/html
文件大小: 85 MB
自定义文件大小: 42 GB
文件名: count.csv
图片文件名: by.svg
公司(Finance)
# 导入 Finance 类
from mimesis import Finance
# 创建 Finance 实例
finance = Finance()
# 生成随机公司名称
print("公司名称:", finance.company())
# 生成公司类型(全称)
print("公司类型 (全称):", finance.company_type(abbr=False))
# 生成公司类型(缩写)
print("公司类型 (缩写):", finance.company_type(abbr=True))
# 获取当前区域设置下的货币 ISO 编码
print("货币 ISO 编码:", finance.currency_iso_code())
# 获取随机货币 ISO 编码
print("随机货币 ISO 编码:", finance.currency_iso_code(allow_random=True))
# 获取当前区域设置下的货币符号
print("货币符号:", finance.currency_symbol())
# 生成随机加密货币 ISO 编码
print("加密货币 ISO 编码:", finance.cryptocurrency_iso_code())
# 获取加密货币符号
print("加密货币符号:", finance.cryptocurrency_symbol())
# 生成银行名称
print("银行名称:", finance.bank())
# 生成指定范围内的价格
print("价格 (500-1500):", finance.price(minimum=500, maximum=1500))
# 生成以 BTC 表示的价格
print("BTC 价格 (0-2):", finance.price_in_btc(minimum=0, maximum=2))
# 生成股票代码
print("股票代码:", finance.stock_ticker())
# 生成股票名称
print("股票名称:", finance.stock_name())
# 生成股票交易所名称
print("股票交易所:", finance.stock_exchange())
输出
公司名称: PACCAR
公司类型 (全称): Limited Liability Limited Partnership
公司类型 (缩写): P.C
货币 ISO 编码: USD
随机货币 ISO 编码: LAK
货币符号: $
加密货币 ISO 编码: IOT
加密货币符号: ₿
银行名称: Horizon Bancorp
价格 (500-1500): 968.69
BTC 价格 (0-2): 0.9954332
股票代码: MSBI
股票名称: HomeStreet
股票交易所: JPX
食物(Food)
from mimesis import Food
# 创建一个 Food 实例
food_provider = Food()
# 生成随机的蔬菜名称
vegetable = food_provider.vegetable()
print(f"随机蔬菜名称: {vegetable}")
# 生成随机的水果或浆果名称
fruit = food_provider.fruit()
print(f"随机水果名称: {fruit}")
# 生成随机的菜肴名称
dish = food_provider.dish()
print(f"随机菜肴名称: {dish}")
# 生成随机的香料或草药名称
spice = food_provider.spices()
print(f"随机香料名称: {spice}")
# 生成随机的饮料名称
drink = food_provider.drink()
print(f"随机饮料名称: {drink}")
输出
随机蔬菜名称: Parsley Root
随机水果名称: Dabai
随机菜肴名称: Fry sauce
随机香料名称: Bay leaf
随机饮料名称: Pink Gin
硬件(Hardware)
from mimesis import Hardware
hardware_provider = Hardware()
print(f"随机屏幕分辨率: {hardware_provider.resolution()}")
print(f"随机屏幕尺寸: {hardware_provider.screen_size()}")
print(f"随机CPU名称: {hardware_provider.cpu()}")
print(f"随机CPU频率: {hardware_provider.cpu_frequency()}")
print(f"随机CPU代数: {hardware_provider.generation()}")
print(f"随机CPU代号: {hardware_provider.cpu_codename()}")
print(f"随机RAM类型: {hardware_provider.ram_type()}")
print(f"随机RAM大小: {hardware_provider.ram_size()}")
print(f"随机硬盘类型: {hardware_provider.ssd_or_hdd()}")
print(f"随机显卡名称: {hardware_provider.graphics()}")
print(f"随机硬件制造商: {hardware_provider.manufacturer()}")
print(f"随机手机型号: {hardware_provider.phone_model()}")
输出
随机屏幕分辨率: 1280x720
随机屏幕尺寸: 13.3″
随机CPU名称: AMD Ryzen 7 1700
随机CPU频率: 3.6GHz
随机CPU代数: 8th Generation
随机CPU代号: Broadwell
随机RAM类型: DDR3
随机RAM大小: 16GB
随机硬盘类型: Micron 4TB HDD
随机显卡名称: Intel® HD Graphics 4000
随机硬件制造商: Lenovo
随机手机型号: iPhone 14 Pro
互联网(Internet)
from mimesis import Internet
# 创建 Internet 实例
internet = Internet()
# 调用所有方法并输出结果
print("随机内容类型:", internet.content_type())
print("随机 DSN:", internet.dsn())
print("随机 HTTP 状态消息:", internet.http_status_message())
print("随机 HTTP 状态码:", internet.http_status_code())
print("随机 HTTP 方法:", internet.http_method())
print("随机 IPv4 地址对象:", internet.ip_v4_object())
print("随机 IPv4 地址:", internet.ip_v4())
print("随机带端口的 IPv4 地址:", internet.ip_v4_with_port())
print("随机 IPv6 地址对象:", internet.ip_v6_object())
print("随机 IPv6 地址:", internet.ip_v6())
print("随机 ASN 编号:", internet.asn())
print("随机 MAC 地址:", internet.mac_address())
print("随机图片 URL:", internet.stock_image_url())
print("随机主机名:", internet.hostname())
print("随机 URL:", internet.url())
print("随机 URI:", internet.uri())
print("随机查询字符串:", internet.query_string())
print("随机查询参数:", internet.query_parameters())
print("随机顶级域名:", internet.top_level_domain())
print("随机 TLD 域名:", internet.tld())
print("随机用户代理:", internet.user_agent())
print("随机端口号:", internet.port())
print("随机路径:", internet.path())
print("随机 Slug:", internet.slug())
print("随机公共 DNS 服务器:", internet.public_dns())
print("随机 HTTP 响应头信息:", internet.http_response_headers())
print("随机 HTTP 请求头信息:", internet.http_request_headers())
print("特殊用途 IPv4 地址对象:", internet.special_ip_v4_object())
print("特殊用途 IPv4 地址:", internet.special_ip_v4())
输出
随机内容类型: message/global
随机 DSN: postgres://lemon.prof:5432
随机 HTTP 状态消息: 429 Too Many Requests
随机 HTTP 状态码: 101
随机 HTTP 方法: HEAD
随机 IPv4 地址对象: 152.162.219.83
随机 IPv4 地址: 26.165.208.233
随机带端口的 IPv4 地址: 248.17.22.119:36242
随机 IPv6 地址对象: 5b8:3a86:f708:5449:bd45:b359:d40a:793b
随机 IPv6 地址: f3ed:be8:2d7b:2e19:b054:344d:e1e7:28de
随机 ASN 编号: AS455794032
随机 MAC 地址: 00:16:3e:59:e7:7b
随机图片 URL: https://source.unsplash.com/1920x1080?
随机主机名: path.coop
随机 URL: https://story.ki/
随机 URI: https://unemployment.mh/2023/01/16/hardcover-solar-vertical-specified-ns-cambridge-purchases-lakes-alphabetical
随机查询字符串: revenues=diagnostic&density=railway&gamma=plot&caps=versions&corporation=voip&cosmetic=gun&chevrolet=memorabilia&instructions=maintain
随机查询参数: {'districts': 'weird', 'inclusive': 'meeting', 'manual': 'tough', 'authority': 'hollywood'}
随机顶级域名: .sy
随机 TLD 域名: .ws
随机用户代理: Mozilla/5.0 (iPad; CPU OS 6_0_1 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A8426 Safari/8536.25
随机端口号: 622
随机路径: sigma/advertisers/turn/machinery/fox
随机 Slug: trial-tours
随机公共 DNS 服务器: 76.223.122.150
随机 HTTP 响应头信息: {'Allow': '*', 'Age': 27822, 'Server': 'nginx/1.14.0 (Ubuntu)', 'Content-Type': 'text/plain', 'X-Request-ID': 'ef4190940e61a0c821b267376a7024dd', 'Content-Language': 'ar-kw', 'Content-Location': 'ignore/louis/hispanic/adjusted', 'Set-Cookie': 'csrftoken=BqN7BI/zPQtTaSLV8LPWyzxuAJa1E/n2uyAEhCUx+AI=; christmas=frequency; Max-Age=27822', 'Upgrade-Insecure-Requests': 1, 'X-Content-Type-Options': 'nosniff', 'X-XSS-Protection': 1, 'Connection': 'keep-alive', 'X-Frame-Options': 'DENY', 'Content-Encoding': 'deflate', 'Cross-Origin-Opener-Policy': 'same-origin-allow-popups', 'Cross-Origin-Resource-Policy': 'same-origin', 'Strict-Transport-Security': 'max-age=27822'}
随机 HTTP 请求头信息: {'Referer': 'https://symposium.asia/2011/01/07/demonstrated-usc-basic-taste-individuals-farmer-accessory', 'Authorization': 'Bearer 396c34692f4f6a4e2b6c33787433627a6a4b6c6a4b4261524b6a573041725752735a656d5943526952647a52504a38365046304a31614b384541745539664c41417a33326362644153366b515752794a3043336178413d3d', 'Cookie': 'csrftoken=7hvmVp/ZSZRMb7TW170KdSEUnLBXmkhe6mi6v/1inHU=; vast=accident', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; LCJB; rv:11.0) like Gecko', 'X-CSRF-Token': '784f7a7442576c45454738396346627650444b5a2b616d5a61743667626266726f7874634b4a7a46586e673d', 'Content-Type': 'image/vnd.mix', 'Content-Length': 9391, 'Connection': 'keep-alive', 'Cache-Control': 'no-cache', 'Accept': 'application/vnd.nokia.catalogs', 'Host': 'restaurant.mobi', 'Accept-Language': '*'}
特殊用途 IPv4 地址对象: 242.180.225.246
特殊用途 IPv4 地址: 198.51.100.147
数值(Numeric)
from mimesis import Numeric,NumType
numeric = Numeric()
# 1. increment - 返回一个递增整数(默认计数器)
print("递增编号 (默认):", numeric.increment())
# 2. increment - 使用自定义计数器名称
print("递增编号 (自定义a):", numeric.increment(accumulator="a"))
# 3. float_number - 生成指定范围与精度的浮点数
print("随机浮点数:", numeric.float_number(start=0.0, end=100.0, precision=2))
# 4. floats - 生成多个浮点数列表
print("多个浮点数:", numeric.floats(start=0.0, end=10.0, n=5, precision=2))
# 5. integer_number - 生成指定范围内的整数
print("随机整数:", numeric.integer_number(start=1, end=100))
# 6. integers - 生成多个整数列表
print("多个整数:", numeric.integers(start=1, end=10, n=5))
# 7. complex_number - 生成一个复数
print("随机复数:", numeric.complex_number(
start_real=0.0, end_real=10.0,
start_imag=0.0, end_imag=10.0,
precision_real=2, precision_imag=2
))
# 8. complexes - 生成多个复数列表
print("多个复数:", numeric.complexes(
start_real=0.0, end_real=5.0,
start_imag=0.0, end_imag=5.0,
precision_real=1, precision_imag=1,
n=3
))
# 9. decimal_number - 生成一个高精度 Decimal 数值
print("高精度小数:", numeric.decimal_number(start=0.0, end=100.0))
# 10. decimals - 生成多个高精度 Decimal 数值列表
print("多个高精度小数:", numeric.decimals(start=0.0, end=10.0, n=4))
# 11. matrix - 生成一个 m x n 的浮点数矩阵
print("浮点数矩阵 (2x3):")
for row in numeric.matrix(m=2, n=3, num_type=NumType.FLOAT, start=0.0, end=10.0, precision=2):
print(row)
# 12. matrix - 生成一个 m x n 的整数矩阵
print("整数矩阵 (3x2):")
for row in numeric.matrix(m=3, n=2, num_type=NumType.INTEGER, start=1, end=10):
print(row)
输出
递增编号 (默认): 1
递增编号 (自定义a): 1
随机浮点数: 32.19
多个浮点数: [7.43, 0.74, 1.29, 4.35, 5.86]
随机整数: 32
多个整数: [6, 9, 8, 4, 8]
随机复数: (1.66+8.65j)
多个复数: [(2.5+3.5j), (0.1+3j), (4.2+0.8j)]
高精度小数: 45.998539540619134413645952008664608001708984375
多个高精度小数: [Decimal('6.9406976464669742910018612747080624103546142578125'), Decimal('6.50728992396565697475807610317133367061614990234375'), Decimal('7.93036128788532668210109477513469755649566650390625'), Decimal('2.946209116456164789354943422949872910976409912109375')]
浮点数矩阵 (2x3):
[0.62, 2.56, 6.58]
[4.07, 3.32, 0.84]
整数矩阵 (3x2):
[1, 7]
[1, 6]
[3, 2]
路径(Path)
from mimesis import Path
# 创建 Path 实例(默认使用当前系统平台)
path_provider = Path()
# 1. root - 返回根目录路径
print("根目录路径:", path_provider.root())
# 2. home - 返回用户的主目录路径
print("主目录路径:", path_provider.home())
# 3. user - 返回随机用户目录路径
print("随机用户目录:", path_provider.user())
# 4. users_folder - 返回用户下的随机文件夹路径
print("用户文件夹路径:", path_provider.users_folder())
# 5. dev_dir - 返回开发目录路径
print("开发目录路径:", path_provider.dev_dir())
# 6. project_dir - 返回项目目录路径
print("项目目录路径:", path_provider.project_dir())
输出
根目录路径: \
主目录路径: \home
随机用户目录: \home\Activists
用户文件夹路径: \home\Wave\Music
开发目录路径: \home\Parks\Dev\GNU Octave
项目目录路径: \home\Millennium\Development\PowerShell\agilisaurus
支付(Payment)
from mimesis import Payment, CardType, Gender
# 创建 Payment 实例(可选 locale、seed 等)
payment = Payment()
# 1. cid() - 生成一个随机 CID 验证码(信用卡背面三位数)
print("CID 验证码:", payment.cid())
# 2. paypal() - 生成一个 PayPal 账户邮箱
print("PayPal 账户:", payment.paypal())
# 3. bitcoin_address() - 生成一个比特币地址(仅模拟,不保证有效)
print("比特币地址:", payment.bitcoin_address())
# 4. ethereum_address() - 生成一个以太坊地址(仅模拟,不保证有效)
print("以太坊地址:", payment.ethereum_address())
# 5. credit_card_network() - 生成一个信用卡发行网络名称
print("信用卡网络:", payment.credit_card_network())
# 6. credit_card_number(card_type: CardType | None = None) - 生成信用卡号
# 参数:
# card_type: 卡类型(CardType.VISA / MASTER_CARD / AMERICAN_EXPRESS)
print("Visa 信用卡号:", payment.credit_card_number())
print("MasterCard 信用卡号:", payment.credit_card_number(card_type=CardType.MASTER_CARD))
print("American Express 信用卡号:", payment.credit_card_number(card_type=CardType.AMERICAN_EXPRESS))
# 7. credit_card_expiration_date(minimum: int = 16, maximum: int = 25) - 生成有效期
# 参数:
# minimum: 年份最小值(当前年份 + 偏移)
# maximum: 年份最大值
print("信用卡有效期 (默认):", payment.credit_card_expiration_date())
print("信用卡有效期 (自定义范围):", payment.credit_card_expiration_date(minimum=2024, maximum=2030))
# 8. cvv() - 生成 CVV 安全验证码(信用卡背面三位数)
print("CVV 安全码:", payment.cvv())
# 9. credit_card_owner(gender: Gender | None = None) - 生成完整的信用卡持有者信息
# 参数:
# gender: 持卡人性别(Gender.MALE / Gender.FEMALE)
owner_info = payment.credit_card_owner()
print("信用卡持卡人信息:")
print(f" 卡号: {owner_info['credit_card']}")
print(f" 有效期: {owner_info['expiration_date']}")
print(f" 持卡人姓名: {owner_info['owner']}")
owner_info_male = payment.credit_card_owner(gender=Gender.MALE)
print("男性持卡人姓名:", owner_info_male["owner"])
owner_info_female = payment.credit_card_owner(gender=Gender.FEMALE)
print("女性持卡人姓名:", owner_info_female["owner"])
输出
CID 验证码: 4582
PayPal 账户: myanmar2071@gmail.com
比特币地址: 3Qodo23muR3gv5Ylt6QPwAbcvXbGCe6ckg
以太坊地址: 0x6a44630cf22675066a3d75128425bfa984db2914
信用卡网络: Discover
Visa 信用卡号: 3718 898983 26662
MasterCard 信用卡号: 2545 3861 0869 5272
American Express 信用卡号: 3450 896406 20701
信用卡有效期 (默认): 04/17
信用卡有效期 (自定义范围): 01/2028
CVV 安全码: 162
信用卡持卡人信息:
卡号: 5162 4228 6979 8677
有效期: 06/22
持卡人姓名: BRYANT DECKER
男性持卡人姓名: MICAH CALHOUN
女性持卡人姓名: MARLANA GRAY
个人信息(Person)
from mimesis import Person, Gender, TitleType
# 创建 Person 实例
person = Person()
# 1. birthdate - 生成随机出生日期
print("出生日期:", person.birthdate(min_year=1980, max_year=2005))
# 2. name - 生成名字(可指定性别)
print("名字 (默认):", person.name())
print("男性名字:", person.name(gender=Gender.MALE))
print("女性名字:", person.name(gender=Gender.FEMALE))
# 3. first_name - 同 name
print("第一个名字:", person.first_name())
# 4. surname - 生成姓氏(可指定性别)
print("姓氏 (默认):", person.surname())
print("男性姓氏:", person.surname(gender=Gender.MALE))
print("女性姓氏:", person.surname(gender=Gender.FEMALE))
# 5. last_name - 同 surname
print("最后一个姓氏:", person.last_name())
# 6. title - 生成职称或头衔(可指定性别和类型)
print("职称 (默认):", person.title())
print("男性博士头衔:", person.title(gender=Gender.MALE, title_type=TitleType.ACADEMIC))
print("女性职业头衔:", person.title(gender=Gender.FEMALE, title_type=TitleType.ACADEMIC))
# 7. full_name - 生成完整姓名(可反转顺序)
print("完整姓名:", person.full_name())
print("倒序完整姓名:", person.full_name(reverse=True))
print("男性完整姓名:", person.full_name(gender=Gender.MALE))
# 8. username - 生成用户名(支持模板格式)
print("默认用户名:", person.username())
print("自定义模板用户名:", person.username(mask="C_d_C", drange=(1990, 2020)))
# 9. password - 生成密码(可返回 SHA256 哈希)
print("默认密码:", person.password())
print("长度为12的密码:", person.password(length=12))
print("SHA256 密码哈希:", person.password(hashed=True))
# 10. email - 生成随机邮箱(可指定域名)
print("随机邮箱:", person.email())
print("指定域名邮箱:", person.email(domains=["example.com", "test.org"]))
# 11. gender_symbol - 生成性别符号(♂ / ♀)
print("性别符号:", person.gender_symbol())
# 12. gender_code - 生成 ISO 性别代码(0~9)
print("ISO 性别代码:", person.gender_code())
# 13. gender - 生成性别名称(Male / Female)
print("性别:", person.gender())
# 14. sex - 同 gender
print("性征:", person.sex())
# 15. height - 生成身高(米)
print("身高:", person.height(minimum=1.5, maximum=2.0))
# 16. weight - 生成体重(公斤)
print("体重:", person.weight(minimum=40, maximum=100))
# 17. blood_type - 生成血型
print("血型:", person.blood_type())
# 18. occupation - 生成职业
print("职业:", person.occupation())
# 19. political_views - 生成政治观点
print("政治观点:", person.political_views())
# 20. worldview - 生成世界观
print("世界观:", person.worldview())
# 21. views_on - 生成对某事的观点
print("观点:", person.views_on())
# 22. nationality - 生成国籍(可指定性别)
print("国籍:", person.nationality())
print("男性国籍:", person.nationality(gender=Gender.MALE))
# 23. university - 生成大学名称
print("大学:", person.university())
# 24. academic_degree - 生成学历
print("学历:", person.academic_degree())
# 25. language - 生成语言
print("语言:", person.language())
# 26. phone_number - 生成电话号码(支持模板)
print("电话号码:", person.phone_number())
print("自定义模板电话号码:", person.phone_number(mask="+86-(###)-###-####"))
# 27. telephone - 同 phone_number
print("电话:", person.telephone())
# 28. identifier - 生成任意标识符(支持模板)
print("标识符:", person.identifier())
print("自定义标识符:", person.identifier(mask="##-##/##"))
输出
出生日期: 1988-09-30
名字 (默认): Toney
男性名字: Byron
女性名字: Melaine
第一个名字: Abram
姓氏 (默认): Richard
男性姓氏: Meyers
女性姓氏: Patton
最后一个姓氏: Lang
职称 (默认): Master
男性博士头衔: MSc
女性职业头衔: PhD
完整姓名: Jannet Landry
倒序完整姓名: Hardy Lavern
男性完整姓名: Todd Prince
默认用户名: barrier_1880
自定义模板用户名: Sharp_1996_Dip
默认密码: n>(xMQwk
长度为12的密码: qL4Z1r_MOp_z
SHA256 密码哈希: 4c063fa3106f42ea8ba4d2b2482afcb7575f74170e4e6151ac7e6d590e29f7fe
随机邮箱: characters2012@duck.com
指定域名邮箱: made2008@test.org
性别符号: ♂
ISO 性别代码: 1
性别: Male
性征: Other
身高: 1.95
体重: 79
血型: A+
职业: Lighting Designer
政治观点: Libertarian
世界观: Pantheism
观点: Compromisable
国籍: Ukrainian
男性国籍: Chinese
大学: College of Coastal Georgia
学历: PhD
语言: Estonian
电话号码: +1-314-947-4467
自定义模板电话号码: +86-(472)-208-1375
电话: +14303972998
标识符: 31-03/92
自定义标识符: 31-44/65
科学和度量单位(scence)
from mimesis import Science, MeasureUnit, MetricPrefixSign
# 创建 Science 实例
science = Science()
# 1. rna_sequence(length: int = 10) - 生成随机 RNA 序列
print("RNA 序列 (默认长度):", science.rna_sequence())
print("RNA 序列 (自定义长度):", science.rna_sequence(length=15))
# 2. dna_sequence(length: int = 10) - 生成随机 DNA 序列
print("DNA 序列 (默认长度):", science.dna_sequence())
print("DNA 序列 (自定义长度):", science.dna_sequence(length=15))
# 3. measure_unit(name: MeasureUnit | None = None, symbol: bool = False) - 获取 SI 单位
print("随机单位:", science.measure_unit())
print("单位名称:", science.measure_unit(name=MeasureUnit.FORCE)) # 力
print("单位符号:", science.measure_unit(name=MeasureUnit.FORCE, symbol=True)) # N
print("温度单位:", science.measure_unit(name=MeasureUnit.TEMPERATURE, symbol=True)) # °C
# 4. metric_prefix(sign: MetricPrefixSign | None = None, symbol: bool = False) - 获取 SI 前缀
print("随机前缀:", science.metric_prefix())
print("获取正前缀:", science.metric_prefix(sign=MetricPrefixSign.POSITIVE))
print("获取负前缀符号:", science.metric_prefix(sign=MetricPrefixSign.NEGATIVE, symbol=True))
输出
RNA 序列 (默认长度): CCGGUGCUUC
RNA 序列 (自定义长度): GGUGUGUAUGCUACA
DNA 序列 (默认长度): AAAGGCCGAC
DNA 序列 (自定义长度): CAGATGAAGGAAGGT
随机单位: coulomb
单位名称: newton
单位符号: N
温度单位: °C
随机前缀: femto
获取正前缀: deca
获取负前缀符号: f
文本数据(text)
from mimesis import Text
from mimesis.enums import EmojyCategory
# 创建 Text 实例
text_provider = Text()
# 1. alphabet - 获取当前语言的字母表(支持大小写)
print("大写字母表:", text_provider.alphabet(lower_case=False))
print("小写字母表:", text_provider.alphabet(lower_case=True))
# 2. level - 生成表示“等级”的词语(如 critical, high)
print("等级描述:", text_provider.level())
# 3. text - 生成指定数量的句子组合成的段落
print("随机段落 (5句):", text_provider.text(quantity=5))
# 4. sentence - 生成一句随机句子
print("随机句子:", text_provider.sentence())
# 5. title - 生成一个标题(与 sentence 相似)
print("随机标题:", text_provider.title())
# 6. words - 生成指定数量的随机单词列表
print("多个随机单词 (5个):", text_provider.words(quantity=5))
# 7. word - 生成一个随机单词
print("随机单词:", text_provider.word())
# 8. quote - 生成一句名人名言或随机引用
print("引用语录:", text_provider.quote())
# 9. color - 生成随机颜色名称
print("随机颜色名称:", text_provider.color())
# 10. hex_color - 生成随机 HEX 颜色代码
print("HEX 颜色:", text_provider.hex_color())
print("安全颜色 (Flat UI):", text_provider.hex_color(safe=True))
# 11. rgb_color - 生成随机 RGB 颜色元组
print("RGB 颜色:", text_provider.rgb_color())
print("安全 RGB 颜色:", text_provider.rgb_color(safe=True))
# 12. answer - 生成一个随机的回答(是/否等)
print("随机回答:", text_provider.answer())
# 13. emoji - 生成一个随机 Emoji 表情(可指定类别)
print("默认表情:", text_provider.emoji())
print("人物类表情:", text_provider.emoji(category=EmojyCategory.PEOPLE_AND_BODY))
print("动物类表情:", text_provider.emoji(category=EmojyCategory.ANIMALS_AND_NATURE))
print("国旗类表情:", text_provider.emoji(category=EmojyCategory.FLAGS))
输出
大写字母表: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
小写字母表: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
等级描述: extreme
随机段落 (5句): Atoms are used within a program to denote distinguished values. Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is also a garbage-collected runtime system. Erlang is known for its designs that are well suited for systems. Haskell features a type system with type inference and lazy evaluation.
随机句子: Initially composing light-hearted and irreverent works, he also wrote serious, sombre and religious pieces beginning in the 1930s.
随机标题: Its main implementation is the Glasgow Haskell Compiler.
多个随机单词 (5个): ['basin', 'oem', 'diego', 'keywords', 'shirt']
随机单词: emerging
引用语录: You're gonna need a bigger boat.
随机颜色名称: Brown
HEX 颜色: #762427
安全颜色 (Flat UI): #9b59b6
RGB 颜色: (125, 14, 43)
安全 RGB 颜色: (189, 195, 199)
随机回答: No
默认表情: 🤎
人物类表情: 👨👨👦👦
动物类表情: 🐁
国旗类表情: 🇨🇨
交通工具(Transport)
from mimesis import Transport
from mimesis.locales import Locale
# 创建 Transport 实例
transport = Transport()
# 1. manufacturer - 生成一个随机汽车制造商
print("随机汽车制造商:", transport.manufacturer())
# 2. car - 生成一个随机汽车型号(品牌+型号)
print("随机汽车型号:", transport.car())
# 3. airplane - 生成一个随机飞机型号
print("随机飞机型号:", transport.airplane())
# 4. vehicle_registration_code(locale: Locale | None = None) - 获取车辆注册代码(按地区)
print("默认车辆注册码:", transport.vehicle_registration_code())
print("德国车辆注册码:", transport.vehicle_registration_code(locale=Locale.DE))
print("美国车辆注册码:", transport.vehicle_registration_code(locale=Locale.EN))
print("日本车辆注册码:", transport.vehicle_registration_code(locale=Locale.JA))
输出
随机汽车制造商: Lotus
随机汽车型号: Porsche 911 Turbo
随机飞机型号: Dassault Falcon 900
默认车辆注册码: RMM
德国车辆注册码: D
美国车辆注册码: USA
日本车辆注册码: J
全局调用(Generic)
from mimesis import Generic, Locale,Algorithm
# 创建 Generic 实例(默认使用英语环境)
generic = Generic(locale=Locale.ZH)
# 1. 获取地址信息
print("随机地址:", generic.address.address())
print("城市:", generic.address.city())
print("国家:", generic.address.country())
# 2. 获取二进制文件相关数据
# 接收图片文件数据并写入
image_data = generic.binaryfile.image()
with open('sample.png', 'wb') as f:
f.write(image_data)
# 3. 获取金融相关信息
print("银行名称:", generic.finance.bank())
print("公司类型:", generic.finance.company_type())
# 4. 随机选择器(从列表中随机选值)
print("从列表中随机选一个:", generic.choice.choice(["A", "B", "C"]))
# 5. 生成各种编码数据(ISBN、EAN、PIN 等)
print("随机 PIN 码:", generic.code.pin())
print("随机 ISBN:", generic.code.isbn())
# 6. 日期时间相关(当前时间、未来时间等)
print("随机日期:", generic.datetime.date())
print("随机时间:", generic.datetime.time())
# 7. 开发相关(Git 提交、项目名等)
print("随机项目名:", generic.development.programming_language())
print("软件许可证", generic.development.software_license())
# 8. 文件相关(扩展名、文件名等)
print("随机文件名:", generic.file.file_name())
print("随机扩展名:", generic.file.extension())
# 9. 食物相关(水果、蔬菜等)
print("随机水果:", generic.food.fruit())
print("随机饮料:", generic.food.drink())
# 10. 硬件相关(分辨率、硬盘等)
print("随机屏幕分辨率:", generic.hardware.resolution())
print("随机硬盘类型:", generic.hardware.ssd_or_hdd())
# 11. 网络相关(IP、URL、Headers 等)
print("随机 IPv4 地址:", generic.internet.ip_v4())
print("随机 URL:", generic.internet.url())
# 12. 数字相关(浮点数、整数、复数等)
print("随机整数:", generic.numeric.integer_number())
print("随机浮点数:", generic.numeric.float_number())
# 13. 路径相关(用户路径、开发目录等)
print("根目录:", generic.path.root())
print("用户目录:", generic.path.user())
# 14. 支付相关(信用卡号、PayPal 账户等)
print("随机信用卡号:", generic.payment.credit_card_number())
print("PayPal 账户:", generic.payment.paypal())
# 15. 人物相关(姓名、性别、电话等)
print("随机姓名:", generic.person.full_name())
print("随机电话号码:", generic.person.telephone())
# 16. 科学相关(DNA/RNA 序列、单位、前缀等)
print("DNA 序列:", generic.science.dna_sequence())
print("SI 单位:", generic.science.measure_unit())
# 17. 文本相关(单词、句子、颜色、Emoji 等)
print("随机单词:", generic.text.word())
print("随机句子:", generic.text.sentence())
print("随机 Emoji 表情:", generic.text.emoji())
# 18. 交通相关(汽车型号、飞机型号等)
print("随机汽车型号:", generic.transport.car())
print("随机飞机型号:", generic.transport.airplane())
# 19. 加密相关(哈希、UUID、密码等)
print("随机 UUID:", generic.cryptographic.uuid())
print("SHA256 密码哈希:", generic.cryptographic.hash(algorithm=Algorithm.SHA256))
输出
随机地址: 邾城八条34号
城市: 梅州市
国家: 圣赫勒拿
银行名称: China Postal Savings Bank Co., Ltd.
公司类型: 有限公司
从列表中随机选一个: C
随机 PIN 码: 7784
随机 ISBN: 1-97331-910-7
随机日期: 2014-08-24
随机时间: 15:54:24.380785
随机项目名: Clojure
软件许可证 MIT License (MIT)
随机文件名: shop.exe
随机扩展名: .rar
随机水果: 核桃
随机饮料: 酸奶
随机屏幕分辨率: 1280x720
随机硬盘类型: SanDisk 128GB SSD
随机 IPv4 地址: 198.116.46.255
随机 URL: https://permit.zulu/
随机整数: 497
随机浮点数: -444.00041915442046
根目录: \
用户目录: \home\Coupled
随机信用卡号: 2450 3726 4541 6961
PayPal 账户: rock2036@example.org
随机姓名: 贤芸 狄
随机电话号码: +86 974-86902726
DNA 序列: ATCCGGCTAC
SI 单位: pascal
随机单词: 要务
随机句子: 燕君为了保持北部的安宁,被迫向东胡王媾和,而以大将为人质
随机 Emoji 表情: 👹
随机汽车型号: Ford Cortina
随机飞机型号: Airbus A220-300
随机 UUID: 5092f400-9faf-44b2-90ee-ed0e9607f769
SHA256 密码哈希: aa9e36d2bf91f6d28622ac2c21a67ea63eafc19b178d8c1392b0d76b03ad8ada
随机(random)
from enum import Enum
from mimesis.random import random
# 定义 Color 枚举
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
print("\n中文描述: randints 函数")
print("输出:", random.randints(n=5, a=10, b=50))
print("\n中文描述: _generate_string 函数")
print("输出:", random._generate_string(str_seq="abc123", length=8))
print("\n中文描述: generate_string_by_mask 函数")
print("输出:", random.generate_string_by_mask(mask="@@@-###", char="@", digit="#"))
print("\n中文描述: uniform 函数")
print("输出:", random.uniform(a=1.5, b=10.5, precision=2))
print("\n中文描述: randbytes 函数")
print("输出:", random.randbytes(n=10))
print("\n中文描述: weighted_choice 函数")
print("输出:", random.weighted_choice(choices={"a": 0.5, "b": 1.5, "c": 2.0}))
print("\n中文描述: choice_enum_item 函数")
print("输出:", random.choice_enum_item(Color))
输出
中文描述: randints 函数
输出: [48, 27, 27, 19, 27]
中文描述: _generate_string 函数
输出: 31abb21c
中文描述: generate_string_by_mask 函数
输出: YLK-795
中文描述: uniform 函数
输出: 6.35
中文描述: randbytes 函数
输出: b'@\xa8\x9a\x0fH}$\xc9\x8a\x8c'
中文描述: weighted_choice 函数
输出: c
中文描述: choice_enum_item 函数
输出: Color.BLUE
模块化数据提供(Schema)
Generic
from mimesis import Generic, Schema
from mimesis.locales import Locale
generic = Generic(Locale.EN, seed=0xFF)
schema = Schema(
lambda: {
"pk": generic.numeric.increment(),
"uid": generic.cryptographic.uuid(),
"name": generic.text.word(),
"version": generic.development.version(),
},
iterations=3,
)
schema.create()
Field
from mimesis import Field, Fieldset, Schema
from mimesis.enums import Gender, TimestampFormat
from mimesis.locales import Locale
field = Field(Locale.EN, seed=0xFF)
fieldset = Fieldset(Locale.EN, seed=0xFF)
schema_definition = lambda: {
"pk": field("increment"),
"uid": field("uuid"),
"name": field("text.word"),
"version": field("version"),
"timestamp": field("timestamp", fmt=TimestampFormat.POSIX),
"owner": {
"email": field("person.email", domains=["mimesis.name"]),
"creator": field("full_name", gender=Gender.FEMALE),
},
"apiKeys": fieldset("token_hex", key=lambda s: s[:16], i=3),
}
schema = Schema(schema=schema_definition, iterations=2)
schema.create()
from mimesis import Field
from mimesis.enums import Locale
# 创建 Field 实例并指定本地化语言
field = Field(Locale.EN)
# 定义你想要随机选取的值列表
choices = ['apple', 'banana', 'cherry', 'date', 'elderberry']
# 使用 field('choice') 方法从列表中随机选择一个值
random_choice = field('choice', items=choices)
print(random_choice)