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 生成器劫持。在本月的“边角料”专栏中,我发现了一个有趣的小型 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 条评论