写入的yaml格式不对

来源:5-9 通过yaml文件获取命令行数据

qq_毅笑而过_0

2020-03-03

完全copy老师的代码,只不过我是在python3中运行,发现写入的yaml格式不正确。
代码:

def write_data(self,i,device,bp,port):
	'''
	写入数据
	'''
	data = self.join_data(i,device,bp,port)
	with open("../config/userconfig.yaml","a") as fr:
		yaml.dump(data,fr)

def join_data(self,i,device,bp,port):
	data = {
	"user_info_"+str(i):{
	"deviceName":device,
	"bp":bp,
	"port":port
	}
	}
	return data

运行完的结果:

图片描述
用记事本打开检查encoding是UTF-8,language也识别了YAML。

尝试了在yaml.dump里加上encoding参数,结果还是一样。

def write_data(self,i,device,bp,port):
    '''
    写入数据
    '''
    data = self.join_data(i,device,bp,port)
    with open("../config/userconfig.yaml","a") as fr:
        yaml.dump(data,fr,encoding='utf-8')
写回答

1回答

qq_毅笑而过_0

提问者

2020-03-03

已经解决,需要加一个参数

default_flow_style=True

    def write_data(self,i,device,bp,port):
        '''
        写入数据
        '''
        data = self.join_data(i,device,bp,port)
        with open("../config/userconfig.yaml","a") as fr:
            yaml.dump(data,fr,encoding='utf-8', default_flow_style=True)


0
1
Mushishi
不错不错 加油哟
2020-03-03
共1条回复

Python主讲移动端自动化测试框架Appium

APP自动化基础知识、po模型、关键字模型、服务自动化、持续集成

1508 学习 · 1333 问题

查看课程