求助:python-pytest实战2中,yaml文件的格式如图,load_data怎么样设计,参数才能被参数化?

‘’’
背景:
当时老师只是说了下,这个下图的yaml格式该怎么操作,但是课后自己思考,没有找到解决的算法
yaml格式:
a: [2,0.2]
b: [2,0.1]
c: [1,2]
下面的函数是对yaml文件的参数读取,但是实际结果不为预期结果,预期结果 values=[2,2,1],[0.2,0.1,2]
麻烦老师帮忙看下
‘’’

def load_data(path=‘data1.yaml’):
with open(path) as f:
# 读出来的文件存放在data中
data = yaml.safe_load(f)

    keys = ",".join( a for a  in  data.keys())
    values = [ d for d in data.values()]
    data = {'keys': keys, 'values': values[0]}

    return data

‘’’

思考下"列表"的index问题

老师,您的这个预期结果不是我的结果,我想要的是,实现’values’:[2,2,1],[0.2,0.1,2]
],
这样便于下面的测试用例直接引用这个参数,
‘’’
class calc():
def mil(self,a,b):
return a*b’’’

class Testcalc:

def setup_class(self):
    print("setup_class")


    self.calc = calc()
#独立构造一个方法 ,读取数据



@pytest.mark.parametrize(load_data()['keys'],load_data()['values'])
def test_mil(self,a,b,c):

    assert self.calc.mil(a,b)==c

推导式试试

a = [[k for k, v in data.values()],[v for k, v in data.values()]

image

同学,方法可以么?

方法可以,谢谢老师