问题背景:

  在执行测试用例,将测结果回写到yaml文件时,出现中文全都是Unicode编码的问题。

如下:

test.yaml文件内容

Data:
  name: "中国"
  cityName: "上海"
  areaName: "闵行区"

读写代码如下

# FileName : writeYaml.py
# Author   : Adil
# DateTime : 2020/4/26 6:37 PM
# SoftWare : PyCharm

import yaml



yamlFile = 'test.yaml'

f = open(yamlFile,'r',encoding='utf-8')

cont = f.read()

r = yaml.safe_load(cont)
print(r)


f.close()


fw = open(yamlFile,'a',encoding='utf-8')

w = r

yaml.dump(w,fw)

fw.close()

执行代码如下

Python Yaml 写入中文乱码的问题-LMLPHP

执行后yaml 文件内容变更为

Python Yaml 写入中文乱码的问题-LMLPHP

解决办法

加入参数 

allow_unicode=True
fw = open(yamlFile,'a',encoding='utf-8')

w = r

yaml.dump(w,fw,allow_unicode=True)


fw.close()

执行结果

Python Yaml 写入中文乱码的问题-LMLPHP

08-31 15:04