我正在寻找可以在 Perl 和 Python 中使用的快速(xml 太慢了)序列化方法。
不幸的是,我不能使用 JSON(以及许多其他格式),因为它总是将字典键的类型从整数更改为字符串。我需要保留 key 类型的序列化/反序列化。
python :
>>> import json
>>> dict_before = {1:'one', 20: 'twenty'}
>>> data = json.dumps(dict_before)
>>> dict_after = json.loads(data)
>>> dict_before
{1: 'one', 20: 'twenty'} #integer keys
>>> dict_after
{u'1': u'one', u'20': u'twenty'} #string keys
欢迎提出任何建议。
最佳答案
你可以使用 yaml。
>>> import yaml
>>> dict_before = {1:'one', 20: 'twenty'}
>>> data = yaml.safe_dump(dict_before)
>>> dict_after = yaml.safe_load(data)
>>> dict_after
{1: 'one', 20: 'twenty'}
我遇到了类似的问题。我想在 Perl 和 Python 中共享一个配置文件,我不得不使用 yaml。
您可以在 python 中安装 yaml 模块:
pip install PyYAML
不过,整数键在 perl 中将被转换为字符串 => Legal values for Perl hash key
关于python - 支持整数字典键的快速 Perl<->Python 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18380324/