データを構築するためのPythonのアーティファクトライブラリ-Faker
開発やテストでは、機能検証のためにデータを作成する必要がありますが、手動でデータを作成するには時間がかかり、データが十分に標準化されていません。また、Pythonは、データを改ざんするための非常に使いやすいオープンソースライブラリである** Faker **を提供します。
FakerはPythonサードパーティのオープンソースプロジェクトです。組み込みのメソッドは、名前、住所、電話番号、IDカード、時刻、ネットワーク情報、テキスト情報など、ほとんどの種類のデータをすばやく作成でき、python構文と組み合わせてデータベースに追加できます。ストレステストデータをバッチで作成します。
githubアドレス:https://github.com/joke2k/faker

公式文書:https://faker.readthedocs.io/en/master/
インストール
pip install Faker
基本的な使用法
from faker import Faker
# オブジェクトを作成します。デフォルトで生成されるデータは英語です。zhを使用してください_中国人に指定されたCN
fake =Faker('zh_CN')print(fake.name())#ランダムに名前を生成する
print(fake.address())#ランダムに生成されたアドレス
print(fake.phone_number())#ランダムに電話番号を生成する
print(fake.pystr())#文字列をランダムに生成する
print(fake.email())#電子メールアドレスをランダムに生成する
for i inrange(10):print(fake.name())#10個の名前をランダムに生成します
出力:
徐ボー
Block P、Wuzhou Road、Bishan、Yu City、Yunnan Province 52302813039830591
RPHadhNxNMISoBTbQbQn
[email protected]
張秀英
イェヤン
チェンリン
ワンジュン
Hu Xiurong
ルアン・シュイ
徐ファン
黄東明
リャンリフア
元秦
一般的な方法
1、 地理情報
- city_suffix():市、郡
- country():国
- country_code():国コード
- 地区():地区
- geo_coordinate():地理座標
- 緯度():地理座標(緯度)
- 経度():地理座標(経度)
- postcode():郵便番号
- Province():州
- address():詳細なアドレス
- street_address():ストリートアドレス
- street_name():通りの名前
- street_suffix():通り、道路
2、 基本情報
- ssn():ID番号を生成します
- bs():ランダムな会社のサービス名
- company():ランダムな会社名(長い)
- company_prefix():ランダムな会社名(短い)
- company_suffix():「InformationLimited」などの会社の性質
- fake.credit_card_expire(start = 'now'、end = '+ 10y'、date_format = '%m /%y'):「03/30」などのランダムなクレジットカードの有効期限
- credit_card_full():完全なクレジットカード情報を生成します
- credit_card_number():クレジットカード番号
- credit_card_provider():クレジットカードタイプ
- credit_card_security_code():クレジットカードのセキュリティコード
- job():ランダムジョブ
- first_name_female():女性の名前
- first_name_male():男性の名前
- name():フルネームをランダムに生成します
- name_female():完全な男性名
- name_male():女性のフルネーム
- phone_number():携帯電話番号をランダムに生成します
- phonenumber_prefix():139などの携帯電話番号セグメントをランダムに生成します
3、 メールボックス情報
- ascii_company_email():ランダムなASCII会社の電子メール名
- ascii_email():ランダムASCIIメールボックス:
- company_email():
- email():
- safe_email():安全なメール
4、 基本的なネットワーク情報
- domain_name():ドメイン名を生成します
- domain_word():ドメインワード(つまり、サフィックスを含まない)
- ipv4():ランダムIP4アドレス
- ipv6():ランダムIP6アドレス
- mac_address():ランダムなMACアドレス
- tld():URLドメイン名サフィックス(.com、.net.cnなど、含まない)
- uri():ランダムURIアドレス
- uri_extension():URLファイル拡張子
- uri_page():URLファイル(サフィックスを含まない)
- uri_path():URLファイルパス(ファイル名を含まない)
- url():ランダムなURLアドレス
- user_name():ランダムなユーザー名
- image_url():ランダムURLアドレス
5、 ブラウザ情報
- chrome():Chromeブラウザのuser_agent情報をランダムに生成します
- firefox():Firefoxブラウザのuser_agent情報をランダムに生成します
- internet_explorer():IEブラウザのuser_agent情報をランダムに生成します
- opera():Operaのブラウザuser_agent情報をランダムに生成します
- safari():Safariブラウザのuser_agent情報をランダムに生成します
- linux_platform_token():ランダムなLinux情報
- user_agent():ランダムなuser_agent情報
6、 デジタル情報
- numerify():3つのランダムな数字
- random_digit():0〜9ランダム番号
- random_digit_not_null():1から9までのランダムな番号
- random_int():ランダム番号、デフォルトは0〜9999、最小、最大を設定することで設定できます
- random_number():ランダム番号、パラメーターの桁数設定によって生成される桁数
- pyfloat():
left_digits = 5#生成された整数の数、right_digits = 2#生成された小数の数、positive = True#正の数のみがあるかどうか
- pyint():ランダムなInt番号(random_int()パラメーターを参照)
- pydecimal():ランダムな10進数(pyfloatパラメーターを参照)
7、 テキストの暗号化
- pystr():ランダムな文字列
- random_element():ランダムな文字
- random_letter():ランダムな文字
- 段落():ランダムに段落を生成
- 段落():複数の段落をランダムに生成します
- statement():ランダムに文を生成します
- 文():段落と同様に、複数の文をランダムに生成します
- text():ランダムに記事を生成します
- word():ランダムに生成された単語
- words():複数の単語、使用法、段落、文などをランダムに生成します
- binary():バイナリコードをランダムに生成します
- boolean():True/False
- language_code():2桁の言語コードをランダムに生成します
- locale():言語/国際情報をランダムに生成します
- md5():MD5をランダムに生成します
- null_boolean():NULL/True/False
- password():ランダムに生成されたパスワード、オプションのパラメーター:長さ:パスワードの長さ; special_chars:特殊文字を使用できるかどうか;数字:数字を含めるかどうか;大文字:大文字を含めるかどうか;小文字:小文字を含めるかどうか
- sha1():ランダムSHA1
- sha256():ランダムSHA256
- uuid4():ランダムUUID
8、 時間情報
- date():ランダムな日付
- date_between():指定された範囲の日付をランダムに生成します。パラメーター:start_date、end_date
- date_between_dates():指定された範囲の日付をランダムに生成します。使用法は上記と同じです。
- date_object():1970-1-1から指定された日付までのランダムな日付をランダムに生成します。
- date_time():指定された時間をランダムに生成します(1970年1月1日から現在まで)
- date_time_ad():1ADから現在までのランダムな時間を生成します
- date_time_between():使用法は日付と同じです
- future_date():将来の日付
- future_datetime():未来の時間
- month():ランダムな月
- month_name():ランダム月(英語)
- past_date():過去の日付をランダムに生成します
- past_datetime():過去の時間をランダムに生成します
- time():ランダムな24時間
- timedelta():時差をランダムに取得
- time_object():ランダムな24時間の時間、時間オブジェクト
- time_series():ランダムTimeSeriesオブジェクト
- timezone():ランダムなタイムゾーン
- unix_time():ランダムなUnix時間
- year():ランダムな年
カスタムプロバイダー
from faker import Faker
fake =Faker()from faker.providers import BaseProvider
# カスタムクラスを作成する
classMyProvider(BaseProvider):
def fun1(self):return'xxxxxx'
# 追加を呼び出す_プロバイダーを追加するプロバイダーメソッド
fake.add_provider(MyProvider)>>>fake.fun1()>>>'xxxxxx'
その他の使用法については、公式ドキュメントを参照してください:https://faker.readthedocs.io/en/master/