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 生成器劫持。在本月的“边角料 (Nooks & Crannies)”专栏中,我发现了一个有趣的小型 Python 库,可以帮助开发人员为他们的应用程序生成随机数据。它叫做 Elizabeth。
Elizabeth 由 Líkið Geimfari 编写,并根据 MIT 许可证获得许可,它拥有一组 18 个数据提供程序,支持 21 种不同的语言环境,您可以使用它们生成随机信息,包括姓名和个人特征、地址、文本数据、交通信息、网络和互联网社交媒体数据、数字等等。 安装需要 Python 3.2 或更高版本,您可以使用 pip 或从 git 存储库安装它。
在我的测试驱动中,我在一个全新的 Debian Jessie 盒子上使用 pip 安装了它。您需要 apt-get install python3-pip,这将安装 Python 和所需的依赖项。然后 pip install elizabeth,您就可以使用它了。
只是为了好玩,让我们在 Python 交互式解释器中生成一些关于人的随机数据
>>> from elizabeth import Personal
>>> p=Personal('en')
>>> p.full_name(gender="male")
'Elvis Herring'
>>> p.blood_type()
'B+'
>>> p.credit_card_expiration_date()
'09/17'
>>> p.email(gender='male')
'jessie7517@gmail.com'
>>> p.favorite_music_genre()
'Ambient'
>>> p.identifier(mask='13064########')
'1306420450944'
>>> p.sexual_orientation()
'Heterosexual'
>>> p.work_experience()
39
>>> p.occupation()
'Senior System Designer'
>>>
在您的代码中使用它的方式完全相同——创建一个对象,然后调用您想要的方法来填充您的数据。
Elizabeth 内置了 18 种不同的生成器工具,添加新的工具一点也不困难;您只需定义从 JSON 值集合中获取数据的例程即可。这是在解释器中再次进行的一些随机文本字符串生成
>>> from elizabeth import Text
>>> t=Text('en')
>>> t.swear_word()
'Rat-fink'
>>> t.quote()
'Let them eat cake.'
>>> t.words(quantity=20)
['securities', 'keeps', 'accessibility', 'barbara', 'represent', 'hentai', 'flower', 'keys', 'rpm', 'queen', 'kingdom', 'posted', 'wearing', 'attend', 'stack', 'interface', 'quite', 'elementary', 'broadcast', 'holland']
>>> t.sentence()
'She spent her earliest years reading classic literature, and writing poetry.'
使用 Elizabeth 来填充您可能需要的用于开发或测试的 SQLite 或其他数据库并不难。入门文档给出了一个使用 Flask 轻量级 Web 框架的医疗应用程序示例。
Elizabeth 给我留下了非常深刻的印象——它速度超快、轻巧、易于扩展,并且社区虽然很小,但活跃且参与度高。 截至撰写本文时,该项目已有 25 位提交者,并且问题正在迅速得到处理。 Elizabeth 的完整文档易于阅读和理解,并提供了广泛的 API 参考,至少对于美国英语是这样。
我尝试调整链接以查找是否有其他语言的文档,但我没有成功。 由于非英语语言环境中的 API 不同,因此记录这些差异对于用户来说将非常有帮助。 公平地说,即使您的 Python-fu 不强,阅读代码并找出可用的方法也不是很难。 对我来说,另一个明显的不足是缺乏阿拉伯语或希伯来语语言环境测试数据。 这些是著名的从右到左的语言,对于试图使其应用程序国际化的开发人员来说,正确处理这些语言是一个主要障碍。 像 Elizabeth 这样可以帮助完成这项工作的工具非常有用。
对于需要应用程序示例数据的开发人员来说,Elizabeth 是一个有价值的工具,而对于那些试图创建真正多语言、可本地化应用程序的人来说,它可能是一笔宝藏。
7 条评论