简而言之,我想知道是否有某种安全的 Python 序列化程序,例如 JSON 用于 Javascript。我知道 Python 有一个 JSON 模块,但我想要一些更特定于 python 的东西,具有读取元组和可能集合的能力,如下所示:
[ (3,7), (8,15), (17,21) ]
无需求助于“评估”功能。
简而言之,我想知道是否有某种安全的 Python 序列化程序,例如 JSON 用于 Javascript。我知道 Python 有一个 JSON 模块,但我想要一些更特定于 python 的东西,具有读取元组和可能集合的能力,如下所示:
[ (3,7), (8,15), (17,21) ]
无需求助于“评估”功能。
你可能想看看ast.literal_eval
你是否使用 2.6+
from ast import literal_eval
s = "[ (3,7), (8,15), (17,21) ]"
t = literal_eval(s)
# [(3, 7), (8, 15), (17, 21)]
type(t)
<type 'list'>
type(t[0])
<type 'tuple'>
或者,或者查看http://pyparsing.wikispaces.com/Examplespyparsing
上的 parsePythonValue.py 示例
如果您希望将数据序列化为二进制格式,则可以使用 pickle。如果您希望将数据序列化为文本格式,那么答案是否定的。
如果唯一缺少的区别是列表和元组(可能还有集合),那么最好的选择可能是使用自定义 json 编码器/解码器。有关一些示例,请参见http://docs.python.org/library/json.html。