用Python读取带有重音和特殊字符的YAML文件

问题描述 投票:0回答:1

我正在尝试在Python中读取以下YAML文件:

countries:
  IT:
    "Italia"
  PT:
    "Portugal"
  ES:
    "España"
  PE:
    "Perú"
  FR:
    "France"
  MX:
    "México"
  BR:
    "Brasil"
  CO:
    "Colombia"
  CL:
    "Chile"
  ZA:
    "South Africa"

使用此简单代码:

import yaml
with open('file.yaml') as file:
    countries = yaml.load(file, Loader='yaml.FullLoader')
print(countries)

但是我得到的结果如下:

{'countries': {'IT': 'Italia', 'PT': 'Portugal', 'ES': 'España', 'PE': 'Perú', 'FR': 'France', 'MX': 'México', 'BR': 'Brasil', 'CO': 'Colombia', 'CL': 'Chile', 'ZA': 'South Africa'}}

如您所见,所有的重音符号和特殊字符(例如“ñ”)都被弄乱了。知道为什么以及如何解决它吗?

我正在使用Python 3.7

谢谢。

python yaml
1个回答
0
投票

您可以尝试gensim.utils.deaccent

from gensim.utils import deaccent

mydict={'countries': {'ES': 'España', 'PE': 'Perú', 'MX': 'México', 'ZA': 'South Africa'}}

for key, value in mydict.items():
    for k,v in value.items():
        print(deaccent(value[k]))

输出:

Espana
Peru
Mexico
South Africa
© www.soinside.com 2019 - 2024. All rights reserved.