我想将Python中的简单对象(反)序列化为人类可读的(例如JSON)格式。数据可能来自不可信的来源。我真的很喜欢铁锈图书馆的工作原理:
#[derive(Serialize, Deserialize, Debug)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let point = Point { x: 1, y: 2 };
// Convert the Point to a JSON string.
let serialized = serde_json::to_string(&point).unwrap();
// Prints serialized = {"x":1,"y":2}
println!("serialized = {}", serialized);
// Convert the JSON string back to a Point.
let deserialized: Point = serde_json::from_str(&serialized).unwrap();
// Prints deserialized = Point { x: 1, y: 2 }
println!("deserialized = {:?}", deserialized);
}
我希望在Python中实现类似的功能。由于Python不是静态类型的,所以我希望语法如下:
^{pr2}$其中ClassName
是预期的类。在
jsonpickle
是坏的,坏的,坏的。它的任意使用会导致绝对的代码执行lima
、marshmallow
、kim
,但所有这些库都需要手动定义序列化方案。事实上,这会导致代码重复,这很糟糕。在在Python中,有什么可以用于简单、通用但安全的序列化吗?在
编辑:以前隐含的其他要求
json
模块可以处理的所有内容,而无需对内置类型进行特殊处理。在
由于Python不需要类型注释,任何这样的库都需要
后者将是完美的解决方案,但我还没有找到任何图书馆这样做。在
不过,我找到了一个模块,它只需要定义一个类作为模型:https://github.com/dimagi/jsonobject
使用示例:
相关问题 更多 >
编程相关推荐