小编Qui*_*rns的帖子

使用PyYaml加载特殊字符

我正在加载一个简单的python 3.6脚本中的表情符号字符列表.YAML结构基本如下:

-    
- 
- 
Run Code Online (Sandbox Code Playgroud)

我的python脚本如下所示:

import yaml
f = open('emojis.yml')
EMOJIS = yaml.load(f)
f.close()
Run Code Online (Sandbox Code Playgroud)

我收到以下异常:

yaml.reader.ReaderError: unacceptable character #x001d: special characters are not allowed in "emojis.yml", position 2
Run Code Online (Sandbox Code Playgroud)

我看过这个allow_unicode=True选项,但似乎只适用于yaml.dump.似乎人们在Python2中遇到了类似问题的麻烦,但由于所有字符串都应该是unicode,因此我无法弄清楚为什么这不起作用.

我也尝试用引号括起我的表情符号并使用客户构造函数来表示'tag:yaml.org,2002:str'.大概是因为yaml lib无法将我的表情符号识别为具有字符串类型,因此我的自定义构造函数永远不会被击中.当我将表情符号直接定义为源中的字符串时,我也会观察到相同的行为.

有没有办法用PyYAML加载包含表情符号的yaml文件?

python unicode yaml python-3.x python-3.6

12
推荐指数
2
解决办法
2873
查看次数

标签 统计

python ×1

python-3.6 ×1

python-3.x ×1

unicode ×1

yaml ×1