YAML作为故障安全文件转储格式(使用pyyaml)?

时间:2012-06-27 12:25:37

标签: python yaml

我想将结构化数据(主要是带有一些额外元数据的表格)转储到文件作为另一个程序的输入。但是,某些数据字段可以是任意unicode数据。你知道PyYaml是否是一个故障安全解决方案(例如逃避所有问题的情况)或者你建议使用哪种其他简单的基于文件的解决方案?我担心特殊字符会破坏格式或解析器。

1 个答案:

答案 0 :(得分:1)

任何好的序列化程序都会处理任意Unicode,将其转换为Unicode点引用。

使用YAML:

>>> yaml.dump({'foo': u'τί ἐστίν; 統一碼!!! ✢✪✺'})
'{foo: "\\u03C4\\u1F77 \\u1F10\\u03C3\\u03C4\\u1F77\\u03BD; \\u7D71\\u4E00\\u78BC!!! \\u2722\\u272A\\\n    \\u273A"}\n'

使用JSON:

>>> json.dumps({'foo': u'τί ἐστίν; 統一碼!!! ✢✪✺'})
'{"foo": "\\u03c4\\u1f77 \\u1f10\\u03c3\\u03c4\\u1f77\\u03bd; \\u7d71\\u4e00\\u78bc!!! \\u2722\\u272a\\u273a"}'