Python库——Faker - 知乎 (zhihu.com)
initial code
from faker import Faker
fake = Faker(locale="zh-CN")
def func_yaml(data):
if isinstance(data,dict):
for k,v in data.items():
if 'random' in str(v): # int is not iterable
data[k] = eval(str(v))
return data
def random_name():
return fake.name()
if __name__=='__main__':
data = { 'name': 'random_name()', 'age': 18, 'sex': 'male' }
print(func_yaml(data))
{'name': '林玲', 'age': 18, 'sex': 'male'}
字典调用
from faker import Faker
import random
fake = Faker(locale="zh-CN")
def random_name():
return fake.name()
def func_yaml(data, res=None):
if isinstance(data, dict):
for key, value in data.items():
if '${' in str(value) and '}' in str(value):
start = str(value).index('${')
end = str(value).index('}')
func_name = str(value)[start + 2:end]
data[key] = str(value)[0:start] + str(eval(func_name)) + str(value)[end + 1:len(str(value))]
return data
def age():
return random.randint(1, 100)
if __name__ == '__main__':
data = {'name': "上海-${random_name()}-测试", 'age': "${age()}" , 'sex': 'male'}
print(func_yaml(data))
{'name': '上海-李桂香-测试', 'age': '33', 'sex': 'male'}
data.yaml
#config > data.yaml
person:
name: 上海-${random_name()}-测试组
age: ${age()}
sex: male
# utilils > read_data.py
import yaml
import os
current_path = os.path.realpath(__file__)
parent_path = os.path.dirname(current_path)
path = os.path.join(os.path.dirname(parent_path), "config", "data.yaml")
def read_data():
f = open(path, encoding="utf8")
data = yaml.safe_load(f)
return data
get_data = read_data()
# utils > utils_yamal.py
from faker import Faker
import random
import time
fake = Faker(locale="zh-CN")
def random_name():
return fake.name()
def func_yaml(data, res=None):
if isinstance(data, dict):
for key, value in data.items():
if '${' in str(value) and '}' in str(value):
start = str(value).index('${')
end = str(value).index('}')
func_name = str(value)[start + 2:end]
data[key] = str(value)[0:start] + str(eval(func_name)) + str(value)[end + 1:len(str(value))]
return data
def age():
return random.randint(1, 100)
def local_time():
return time.strftime('%Y%m%d-%H%M%S', time.localtime())
if __name__ == '__main__':
data = {'name': "上海-${random_name()}-测试", 'age': "${age()}" , 'sex': 'male'}
print(func_yaml(data))
# testcase > test_person.py
from utils.read_data import get_data
from utils.utils_yaml import func_yaml
def test_person():
data = get_data["person"]
print(func_yaml(data))
if __name__=='__main__':
test_person()
# result
{'name': '上海-何丹-测试组', 'age': '26', 'sex': 'male'}
网友评论