822
人物
使用 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 的交互式解釋器中為一個人生成一些隨機數據:
>>> 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 功力並不深厚。對我來說,另一個明顯的缺陷是缺乏阿拉伯語或希伯來語區域測試數據。這些是著名的從右到左的語言,對於試圖使其應用程序國際化的開發者來說,適當地處理這些語言是一個主要的障礙。像 Elizabeth 這種在此方麵可以協助的工具是值得擁有的。
對於那些在應用中需要隨機樣本數據的開發員而言,Elizabeth 是一個有價值的工具,而對於那些試圖創建真正多語言、本地化應用程序的開發者來說,它可能是一個寶藏。
原文發布時間為:2017-03-06
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-25 16:31:30