使用 Elizabeth 为应用生成随机样本数据

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. 

不,我的文章没有被 Lorem ipsum 生成器劫持(LCTT 译注:Lorem ipsum,中文又称“乱数假文”,只是一段用来测试排版效果的占位文字,没有实际的含义)。作为本月的 Nooks&Crannies 专栏文章,我发现了一个有趣的小 Python 库,以帮助开发人员为其应用程序生成随机数据。它被称为 Elizabeth

它由 Líkið Geimfari 编写,并在 MIT 许可证下发行,Elizabeth 以 21 个不同本地化信息提供了 18 种数据提供器,可用于生成随机信息(LCTT 译注:不仅是随机数),包括姓名和个人特征、地址、文本数据、交通信息、网络和 Internet 社交媒体数据、数字等等。安装它需要 Python 3.2 或更高版本,您可以使用 pip 或从 git仓库安装它。

在我的测试机上,我在一个全新安装的 Debian Jessie 上使用 pip 来安装它,要做的就是 apt-get install python3-pip,它将安装 Python 和所需的依赖项。然后 pip install elizabeth,之后就安装好了。

只是为好玩,让我们在 Python 的交互式解释器中为一个人生成一些随机数据:


  1. >>> from elizabeth import Personal
  2. >>> p=Personal('en')
  3. >>> p.full_name(gender="male")
  4. 'Elvis Herring'
  5. >>> p.blood_type()
  6. 'B+'
  7. >>> p.credit_card_expiration_date()
  8. '09/17'
  9. >>> p.email(gender='male')
  10. 'jessie7517@gmail.com'
  11. >>> p.favorite_music_genre()
  12. 'Ambient'
  13. >>> p.identifier(mask='13064########')
  14. '1306420450944'
  15. >>> p.sexual_orientation()
  16. 'Heterosexual'
  17. >>> p.work_experience()
  18. 39
  19. >>> p.occupation()
  20. 'Senior System Designer'
  21. >>>

在代码中使用它就像创建一个对象那样,然后调用要你需要填充数据的对应方法。

Elizabeth 内置了 18 种不同的生成工具,添加新的生成器并不困难;你只需要定义从 JSON 值集合中获取数据的例程。以下是一些随机文本字符串生成,再次打开解释器:


  1. >>> from elizabeth import Text
  2. >>> t=Text('en')
  3. >>> t.swear_word()
  4. 'Rat-fink'
  5. >>> t.quote()
  6. 'Let them eat cake.'
  7. >>> t.words(quantity=20)
  8. ['securities', 'keeps', 'accessibility', 'barbara', 'represent', 'hentai', 'flower', 'keys', 'rpm', 'queen', 'kingdom', 'posted', 'wearing', 'attend', 'stack', 'interface', 'quite', 'elementary', 'broadcast', 'holland']
  9. >>> t.sentence()
  10. 'She spent her earliest years reading classic literature, and writing poetry.'

使用 Elizabeth 填充 SQLite 或其它你可能需要用于开发或测试的数据库并不困难。其介绍文档给出了使用Flask 这个轻量级 web 框架的一个医疗应用程序示例。

我对 Elizabeth 印象很深刻 - 它超快、轻量级、易于扩展,它的社区虽然小,但是很活跃。截至本文写作时,项目已有 25 名贡献者,并且提交的问题处理迅速。Elizabeth 的完整文档至少对于美国英语而言易于阅读和遵循,并提供了广泛的 API 参考。

我曾尝试通过修改链接来查找该文档是否有其他语言,但没有成功。因为其 API 在非英语区域中是不同的,所以记录这些变化将对用户非常有帮助。公平地说,通过阅读其代码并找出可用的方法并不难,即使你的 Python 功力并不深厚。对我来说,另一个明显的缺陷是缺乏阿拉伯语或希伯来语区域测试数据。这些是著名的从右到左的语言,对于试图使其应用程序国际化的开发者来说,适当地处理这些语言是一个主要的障碍。像 Elizabeth 这种在此方面可以协助的工具是值得拥有的。

对于那些在应用中需要随机样本数据的开发员而言,Elizabeth 是一个有价值的工具,而对于那些试图创建真正多语言、本地化应用程序的开发者来说,它可能是一个宝藏。

原文发布时间为:2017-03-06

本文来自合作伙伴“Linux中国”

时间: 2024-08-02 03:04:17

使用 Elizabeth 为应用生成随机样本数据的相关文章

生成随机字符串和验证码的类的PHP实例

 这篇文章主要介绍了生成随机字符串和验证码的类的PHP实例,有需要的朋友可以参考一下 网上有很多的php随机数与验证码的代码与文章,真正适用的没有几个.   索性自己搞一个吧.   开始本节的php教程 吧,以下代码的实现,主要做到可以很好区分一个get_code(),另一个create_check_image(),输出图像直接调用后面的,session()取验证码时直接get_code()就ok,顺带提下使用session时必须将session_star()放在最前面.   代码如下:   代

PHP开发应用程序:生成随机字符串的方法

使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码.随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,以供大家参考. 方法一: 1.在 33 – 126 中生成一个随机整数,如 35, 2.将 35 转换成对应的ASCII码字符,如 35 对应 # 3.重复以上 1.2 步骤 n 次,连接成 n 位的密码 该算法主要用到了两个函数,mt_rand ( int $min , int $max )函数

C#生成随机中文汉字验证码

汉字|随机|验证码|中文 前几天去申请免费QQ号码,突然发现申请表单中的验证码内容换成了中文,这叫真叫我大跌眼镜感到好笑,Moper上的猫儿们都大骂腾讯采用中文验证码.'  我不得不佩服腾讯为了防止目前网络上横行的QQ号码自动注册机而采取中文验证码的手段.仔细想了想感觉用程序生成随机的中文验证码并不是很难,下面就来介绍一下使用C#生成随机的中文汉字的原理.  1.汉字编码原理  到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个后台数据表,其中存放了所需要的所有汉字,使用程序随机取出几个

用C#生成随机中文汉字验证码的基本原理

汉字|随机|验证码|中文   前几天去申请免费QQ号码,突然发现申请表单中的验证码内容换成了中文,这叫真叫我大跌眼镜感到好笑,Moper上的猫儿们都大骂腾讯采用中文验证码.^_^ 我不得不佩服腾讯为了防止目前网络上横行的QQ号码自动注册机而采取中文验证码的手段.仔细想了想感觉用程序生成随机的中文验证码并不是很难,下面就来介绍一下使用C#生成随机的中文汉字的原理. 1.汉字编码原理 到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个后台数据表,其中存放了所需要的所有汉字,使用程序随机取出几

PHP随机生成随机个数的字母组合示例

 在很多系统环境下大家都会用到字母组合各种编码.下面为大家介绍下使用php随机生成随机个数的字母组合,感兴趣的朋友可以了解下 在很多系统环境下大家都会用到字母组合各种编码,下面推荐大家非常实用的PHP代码.    $num由几个字母组合.     代码如下: function makecode($num=4) {  $re = ";  $s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';  while(strlen($re)&l

JavaScript生成随机字符串的方法

 这篇文章主要介绍了JavaScript生成随机字符串的方法,涉及javascript中random的使用技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了JavaScript生成随机字符串的方法.分享给大家供大家参考.具体分析如下: 这里使用JavaScript生成一个随机字符串,可以指定字符串的长度. 代码如下: function RandomString(length) { var str = ''; for ( ; str.length < length; str +=

javascript生成随机大小写字母的方法

 这篇文章主要介绍了javascript生成随机大小写字母的方法,需要的朋友可以参考下  代码如下: /**  * 返回一个随机的小写字母  */  function getLowerCharacter(){  return getCharacter("lower");;  }      /**  * 返回一个随机的大写字母  */  function getUpperCharacter(){  return getCharacter("upper");;  } 

在Excel 2007中如何简单地生成随机数据呢?

  在Excel 2007中用函数轻松生成随机数据 这个函数就是 RandBetwween(bottom,top),表示生成从bottom到top之间的随机整数. 我们在Excel工作表的单元格中输入"=RandBetwween(10,100)"(不包括引号). 图示:Excel会自动给出提示 回车,这个单元格中就出现了一个10到100之间的随机数. 再使用Excel神奇的填充柄(将鼠标移动到单元格的右下角,当出现十字标志时,按下鼠标左键,向需要的方向拖动鼠标),轻松得到更多的指定范围

python生成随机mac地址的方法_python

本文实例讲述了python生成随机mac地址的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python import random def randomMAC(): mac = [ 0x52, 0x54, 0x00, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] return ':'.join(map(lambda x: "%02x" %