我正在加载一个简单的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文件?