簡體   English   中英

如何從python faker生成json中的隨機數據?

[英]how to generate random data in json from python faker?

我想生成 5 個測試用例,它們以 json 格式提供隨機數據,如下所示。

{
    "password2": "password@123",
    "email": "test@test.com",
    "username": "user123",
    "first_name": "first",
    "last_name": "last",
    "phone":"1234567890",
    "city":"Paris",
    "about":"This is information about developer"
}

下面的代碼給出了 5 個測試用例,但細節相似。 我想用所有不同的細節生成 5 個不同的測試用例。 先感謝您。

代碼:

from faker import Faker
import random


class LoginData:
    fake = Faker()
    password = "password@123"
    email = fake.email()
    username = fake.first_name()
    first_name = fake.first_name()
    last_name = fake.last_name()
    phone = random.randint(9000000000, 9999999999)
    city = fake.city()
    about = "This is a sample text : about"

    def get_json(self):
        p = {
            'password': self.password,
            'email': self.email,
            'username': self.first_name,
            'first_name': self.first_name,
            'last_name': self.last_name,
            'phone': self.phone,
            'city': self.city,
            'about': self.about
        }
        return p


logindata = LoginData()


def input_data(x):
    for i in range(0, x):
        print(logindata.get_json())


def main():
    no_of_input = 5
    input_data(no_of_input)


main()

如果我理解正確,問題是您希望每次生成不同的數據。 為此,您需要:

  • 當前, LoginData屬性是在定義類時生成的。 如果您希望它們對於每個實例都不同,請將它們設為實例屬性並在__init__()方法中設置它們。

  • 您需要在input_data()的 for 循環的每次迭代中創建一個新的LoginData實例。

代碼:

from faker import Faker
import random


class LoginData:

    def __init__(self):
        fake = Faker()
        self.password = "password@123"
        self.email = fake.email()
        self.username = fake.first_name()
        self.first_name = fake.first_name()
        self.last_name = fake.last_name()
        self.phone = random.randint(9000000000, 9999999999)
        self.city = fake.city()
        self.about = "This is a sample text : about"

    def get_json(self):
        p = {
            'password': self.password,
            'email': self.email,
            'username': self.first_name,
            'first_name': self.first_name,
            'last_name': self.last_name,
            'phone': self.phone,
            'city': self.city,
            'about': self.about
        }
        return p



def input_data(x):
    for i in range(0, x):
        logindata = LoginData()
        print(logindata.get_json())


def main():
    no_of_input = 5
    input_data(no_of_input)


main()

請注意, get_json()仍然返回 Python dict,而不是 JSON。 對於 JSON,您可以使用標准庫中的json模塊:

import json

並在get_json()

return json.dumps(p)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM