美文网首页
python3 yaml写入中文乱码

python3 yaml写入中文乱码

作者: V7hinc | 来源:发表于2020-09-11 14:15 被阅读0次

一般写yaml文件代码

import yaml

yamlFile = 'conf.yml'
data = {
    'week': {
        'Monday': '星期一',
        'Tuesday': '星期二',
        'Wednesday': '星期三',
        'Thursday': '星期四',
        'Friday': '星期五',
        'Saturday': '星期六',
        'Sunday': '星期日'
    }
}
f = open(yamlFile, 'w', encoding='utf-8')
yaml.dump(data, f)

生成的conf.yml内容

week:
  Friday: "\u661F\u671F\u4E94"
  Monday: "\u661F\u671F\u4E00"
  Saturday: "\u661F\u671F\u516D"
  Sunday: "\u661F\u671F\u65E5"
  Thursday: "\u661F\u671F\u56DB"
  Tuesday: "\u661F\u671F\u4E8C"
  Wednesday: "\u661F\u671F\u4E09"

会发现中文全部是用了unicode编码,不利于人阅读

这是只需要在yaml.dump添加allow_unicode=True即可,
修改后的代码:

import yaml

yamlFile = 'conf.yml'
data = {
    'week': {
        'Monday': '星期一',
        'Tuesday': '星期二',
        'Wednesday': '星期三',
        'Thursday': '星期四',
        'Friday': '星期五',
        'Saturday': '星期六',
        'Sunday': '星期日'
    }
}
f = open(yamlFile, 'w', encoding='utf-8')
yaml.dump(data, f, allow_unicode=True)

新生成的conf.yml内容

week:
 Friday: 星期五
 Monday: 星期一
 Saturday: 星期六
 Sunday: 星期日
 Thursday: 星期四
 Tuesday: 星期二
 Wednesday: 星期三

发现中文显示正常了

相关文章

网友评论

      本文标题:python3 yaml写入中文乱码

      本文链接:https://www.haomeiwen.com/subject/iuavektx.html