除了PyYAML之外,有没有安全的Python数据序列化库可以正确地处理unicode
/str
?在
例如:
>>> json.loads(json.dumps([u"x", "x"]))
[u'x', u'x'] # Both unicode
>>> msgpack.loads(msgpack.dumps([u"x", "x"]))
['x', 'x'] # Neither are unicode
>>> bson.loads(bson.dumps({"x": [u"x", "x"]}))
{u'x': [u'x', 'x']} # Dict keys become unicode
>>> pyamf.decode(pyamf.encode([u"x", "x"])).next()
[u'x', u'x'] # Both are unicode
请注意,我希望序列化程序是安全的(因此pickle
和marshel
都不存在),PyYAML是一个选项,但是我不喜欢YAML的复杂性,所以我想知道是否还有其他选项。在
编辑:我的数据的性质似乎有些混乱。其中有些是Unicode(例如,名称),有些是二进制(例如,图像)…因此,混淆unicode
和{"42"
和{
你试过bert吗?在
(要安装,必须先手动安装erlastic,因为this outstanding pull request)
也许只需使用Python的
repr
来存储该值并使用ast.literal_eval
方法反序列化它:寻找同样的东西,我发现msgpack python0.4现在支持str/unicode,并使用use-bin-type/encoding参数:
相关问题 更多 >
编程相关推荐