web-dev-qa-db-ja.com

pyyamlは望ましくない!! python / unicode出力を生成しています

Pyyamlを使用してオブジェクトをファイルにダンプしています。オブジェクトにはいくつかのUnicode文字列があります。以前にこれを実行しましたが、現在は次のような出力アイテムを生成しています。

'item': !!python/unicode "some string"

希望の代わりに:

'item': 'some string'

Utf-8として出力するつもりです。私が使用している現在のコマンドは次のとおりです。

yaml.dump(data,file(suite_out,'w'),encoding='utf-8',indent=4,allow_unicode=True)

他の場所では、私は次のことを行い、それは機能します:

codecs.open(suite_out,"w","utf-8").write(
    yaml.dump(suite,indent=4,width=10000)
)

私は何が間違っているのですか?

Python 2.7.

25

私は多くの組み合わせを試しましたが、一貫して正しいYAML出力を生成することがわかったのは次のとおりです。

yaml.safe_dump(data, file(filename,'w'), encoding='utf-8', allow_unicode=True)
42