PyYAML 3.06 Release

PyYAML 3.06 がリリースされた
PyYAML は YAML の最新仕様である YAML 1.1 に準拠し、かつバグも少なく、今現在いちばんおすすめの YAML ライブラリ。
(Ruby の Syck は YAML 1.0 だからちょっと古いし、バグも多い。)

なお文字列を dump するときに、PyYAML では non-ascii characters をエンコードする・しないを指定できる。

# -*- coding: utf-8 -*-
import yaml
list1 = [ {'name': u"ルルーシュ"}, {'name': u"ナナリー"} ]

print yaml.dump(list1, encoding='utf8')
# 結果:
# - {name: "\u30EB\u30EB\u30FC\u30B7\u30E5"}
# - {name: "\u30CA\u30CA\u30EA\u30FC"}

print yaml.dump(list1, encoding='utf8', allow_unicode=True)
# 結果:
# - {name: ルルーシュ}
# - {name: ナナリー}

これに対し、Ruby ではよく String#to_yaml で日本語が化けるという文句を聞くけど、いまだ解消されてない。
また JRuby は独自の YAML ライブラリを使っているけど、これが String ベースじゃなくて byte array ベースなので、日本語がそもそも通らない。

そんな状況だから、日本語を含む文字列を dump して YAML にしたい人は、Python を使うといいと思うよ。