python - 生成基于虚拟 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 会是更好的选择-我从哪里开始?对于任何示例都将不胜感激。
解决方案
推荐阅读
- mysql - 如何从 VB.NET 和 MySql 8 中的给定记录中读取特定列?
- reactjs - 正确格式化引导列?(抵消等)
- php - 使用 Laravel Excel 包添加自定义页脚和页眉
- loadrunner - 需要帮助在 Web 自定义请求中参数化 JSON 值
- c++ - 什么是“从标准输入(内存管理)读取无界流”的示例
- c# - 异步 StackOverflowException
- r - as.POSIXct() 为特定日期时间生成 NA
- html - 多级下拉菜单
- vb.net - Devexpress webchartcontrol如何获取无限颜色集合并存储在列表数组中
- java - 有没有办法使用扫描仪创建一个简单的方程