def
save_dict_to_yaml
(
dict_value
:
dict
,
save_path
:
str
)
:
"""dict保存为yaml"""
with
open
(
save_path
,
'w'
)
as
file
:
file
.
write
(
yaml
.
dump
(
dict_value
,
allow_unicode
=
True
)
)
def
read_yaml_to_dict
(
yaml_path
:
str
,
)
:
with
open
(
yaml_path
)
as
file
:
dict_value
=
yaml
.
load
(
file
.
read
(
)
,
Loader
=
yaml
.
FullLoader
)
return
dict_value
if
__name__
==
'__main__'
:
my_config_dict
=
{
"mysql"
:
{
"host"
:
"127.0.0.1"
,
"tables"
:
[
"table_1"
,
"table_2"
]
,
"redis"
:
{
"host"
:
"127.0.0.1"
,
"db"
:
3
,
save_dict_to_yaml
(
my_config_dict
,
"config.yaml"
)
config_value
=
read_yaml_to_dict
(
"config.yaml"
)
assert
config_value
==
my_config_dict
使用示例也可参考:
python读取yaml文件
使用pyyaml库对dict类型数据与yaml格式文件做转换,首先安装:pip install pyyaml示例代码import yamldef save_dict_to_yaml(dict_value: dict, save_path: str): """dict保存为yaml""" with open(save_path, 'w') as file: file.write(yaml.dump(dict_value, allow_unicode=True))
Related是一个用于创建嵌套对象模型的
Python
库,该对象模型可以从嵌套
python
字典
序列化和反序列化。 与其他库(例如 )配对时, Related对象模型可用于在嵌套数据格式(例如JSON,
YAML
)之间进行
转换
。
related对象模型的示例用例包括:
配置
文件
读写
REST API消息响应生成和请求处理
文档存储的对象-文档映射(例如MongoDB,elasticsearch)
数据导入解析或导出生成
Python
(2.7、3.5、3.6)
使用pip安装...
pip install related
第一个例子
import related
@ relate
字符串(包括patter / minLength / maxLenght)
数量(包括最大/排他的最大/最小/排他的最小/多次/ le / ge)
整数(包括最大/唯一最大/最小/唯一最小/多个Of / le / ge)
uuid(uuid1 / uuid2 / uuid3 / uuid4 / uuid5)
# json.dumps() 是把
python
对象
转换
成json对象的一个过程,生成的是字符串。 s理解为 str
# json.dump() 是把
python
对象
转换
成json对象生成一个fp的
文件
流,和
文件
相关。
dict
_1 = {'a': 1, 'b': 2} # {'a': 1, 'b': 2} type(
dict
_1) --> <class '
dict
'>
json_1 = json.dumps(
dict
_1) # {"a
#reload(sys)
#sys.setdefaultencoding('utf-8')
######################对input输入字符类型判断并
转
化#####################
def input_handle(s):
if str.isdigit(s):
xfile从输入
文件
或stdin读取一系列源记录,将
转换
应用于每个记录,并将
转换
后的记录写入stdout。它由
YAML
配置
文件
驱动。
xfile使用称为Map的可配置类型以及称为DataSource的可插拔类型。映射是一种结构化类型,用于描述输入记录(一组名称-值对)和输出记录之间的关系。
配置
文件
指定任意数量的命名Maps。每个映射都包含一些元数据,对数据源的引用以及字段的集合。这些字段包括地图内的嵌套
字典
,其中的键是输出字段名称。在每个字段中,我们可以有一个输入字段名称和该字段的来源。也就是说
用于将
python
对象表示为
字典
的小库。
为什么你需要这样的图书馆? 一个明显的用例是将带有方法、大量属性等的复杂对象
转换
为用于序列化的
dict
s(
转换
为 json/
yaml
/xml/pickle/whatever)。 您可以通过描述如何从对象中获取值以及如何使用简单的语法以脱水结构呈现它来控制脱水过程。
在最简单的可能情况下,您只需要获取对象、列出想要的属性并根据属性名称和来自它们的值获取与键的映射。 在这种情况下使用dehydrate快捷方式:
>>> from dehydrate import dehydrate
>>> from pretend import stub as Person
>>> iron_man = Person(first_name='Tony', login='iron_man')
>>> dehydrated
A:在pytest中使用
yaml
文件
中的变量,可以使用Py
YAML
库读取
yaml
文件
,然后将其
转换
为
字典
,再通过pytest.fixture传递给测试用例。
以下是一些示例代码:
1.创建一个名为config.
yaml
的
yaml
文件
,包含变量test_url和test_data:
test_url: "http://example.com"
test_data:
username: "testuser"
password: "testpassword"
2.在conftest.py
文件
中,使用Py
YAML
库读取
yaml
文件
,并将其
转换
为
字典
:
import
yaml
def pytest_addoption(parser):
parser.addoption("--config", action="store", default="config.
yaml
", help="path to config file")
@pytest.fixture(scope="session")
def config(request):
with open(request.config.getoption("--config"), 'r') as file:
config =
yaml
.safe_load(file)
return config
3.在测试用例中,使用@pytest.mark.parametrize装饰器传递从config
字典
中读取的变量:
import requests
import pytest
@pytest.mark.parametrize('username,password', [(config['test_data']['username'], config['test_data']['password'])])
def test_login(config, username, password):
response = requests.post(config['test_url'], data={'username': username, 'password': password})
assert response.status_code == 200
在这个示例中,我们从config
字典
中读取了test_data中的用户名和密码变量,并将其传递给测试用例test_login。
weixin_47665155:
离线安装NLTK工具包
weixin_47665155:
Markdown代码框diff,高亮显示差异、增量、修改
程序边界:
解决Homebrew报错Error: Failure while executing; git clone https://github.com/Homebrew/homebrew-core....
阔野koy:
Geatpy框架使用基于NSGA-II算法的多染色体多目标进化算法案例(moea_psy_NSGA2_templet)
! G u ♛: