Python文本的安全读取

Python文本的安全读取,python,serialization,Python,Serialization,简而言之,我想知道是否有某种安全的Python序列化程序,比如JSON是用于Javascript的。我知道Python有一个JSON模块,但我想要一些更具体的Python模块,具有读取元组和集合的能力,比如: [ (3,7), (8,15), (17,21) ] 不必求助于“eval”功能 如果您使用的是2.6,您可能需要查看ast.literal\u eval+ from ast import literal_eval s = "[ (3,7), (8,15), (17,21) ]"

简而言之,我想知道是否有某种安全的Python序列化程序,比如JSON是用于Javascript的。我知道Python有一个JSON模块,但我想要一些更具体的Python模块,具有读取元组和集合的能力,比如:

  [ (3,7), (8,15), (17,21) ]

不必求助于“eval”功能

如果您使用的是2.6,您可能需要查看
ast.literal\u eval
+

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'>
从ast导入文字\u评估
s=“[(3,7)、(8,15)、(17,21)]”
t=文字值
# [(3, 7), (8, 15), (17, 21)]
类型(t)
类型(t[0])
或者,看看
pyparsing
和上的parsePythonValue.py示例。引用文件:

警告:pickle模块不用于防止错误或恶意构造的数据。决不要取消从不受信任或未经验证的来源接收的数据


在取消勾选(读取序列化数据)时实现一些安全性非常好。

如果希望将数据序列化为二进制格式,则可以使用pickle。 如果您希望将数据序列化为文本格式,则答案为否


如果缺少的唯一区别是列表和元组(可能还有集合)之间的区别,那么最好使用自定义json编码器/解码器。请参阅以获取一些示例。

您可能需要查看
pickle
模块。它可以将对象从\转储并加载到python。Pyparsing不再托管在wikispaces.com上。去