生成基于 json 的虚拟示例

问题描述

我需要创建假的 jsons , Json 结构将通过 json 示例提供, 后来转化为方案/类, .

即以下 json 的示例:

{"email": "robin14@chapman-quinn.com","username": "ryan","first_name": "Ryan","last_name": "Ramirez","phone_number": "3718444137","optiona_info": {"address": "Unit 2836 Box 8447\nDPO AA 19978","nick": "dummy"}}

这是很简单的Json,下面的代码生成 假数据:

from faker import Faker
import json



class OptionalInfo():

    def __init__(self):
        fake = Faker()
        self.address = fake.address()
        self.nick= 'dummy' 
    def returnjson(self):
        return dict (address= self.address,nick= self.nick)

class PersonalInfo():

    def __init__(self):
        fake = Faker()
        self.email = fake.email()
        self.username = fake.first_name()
        self.first_name = fake.first_name()
        self.last_name = fake.last_name()
        self.phone_number = fake.phone_number()
        self.OptionalInfo = OptionalInfo()

    def returnjson(self):
        return {'email': self.email,'username': self.first_name.lower(),'first_name': self.first_name,'last_name': self.last_name,'phone_number': self.phone_number,'optional_info': self.OptionalInfo
        }

class ComplexEncoder(json.JSONEncoder):
    def default(self,obj):
        if hasattr(obj,'returnjson'):
            return obj.returnjson()
        else:
            return json.JSONEncoder.default(self,obj)



def input_data(x):
    for i in range(0,x):
        personalinfo = PersonalInfo()

        print (json.dumps(personalinfo.returnjson(),cls=ComplexEncoder))


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


main()

我有点怀疑我是否应该以更“pydantic 风格”的方式解决这个问题并获得类型验证,当我读到它时,它对于描述嵌套元素更直观......我怎样才能像这里所做的那样对 pydantic 类中的每个变量应用 faker() 。 所以首先需要为方法提供建议,其次,如果 pydantic 会是更好的选择 - 我从哪里开始?对于任何例子都将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...