在PyYaml中转储为utf-8

pan*_*ari 15 python utf-8 pyyaml

我正在尝试加载一堆utf-8编码的字符串并使用PyYaml再次转储它们.这是加载/转储的代码:

lang_yml = yaml.load(codecs.open(lang + ".yml.old", "r", "utf-8"))
test_file_path = lang + '.yml'
stream = file(test_file_path, 'w')
yaml.dump(lang_yml, stream,  default_flow_style=False, encoding=('utf-8'))
Run Code Online (Sandbox Code Playgroud)

但是以"恩到达"开头的字符串最终被保存为"恩到达\ xE8re".我究竟做错了什么?

pan*_*ari 36

我自己找到了答案.我只需要用参数转储它

allow_unicode=True
Run Code Online (Sandbox Code Playgroud)

资料来源:http://dpinte.wordpress.com/2008/10/31/pyaml-dump-option/