我对python很陌生(我使用python 3),我正在尝试用一个字符串和两个列表作为JSon中的成员序列化一个类。我发现python standart中有一个json库,但似乎需要手动实现序列化方法。是否有一个JSon编码器,在这里我可以简单地传递一个对象,并以字符串形式接收序列化的对象,而不必实现序列化方法。 示例:
class MyClass:
pass
if __name__ == '__main__':
my_name = "me"
my_list = {"one","two"}
my_obj = MyClass()
my_obj.name = my_name;
my_obj.my_list = my_list
serialized_object = JSONserializer.serialize(my_obj).
谢谢你。
您希望
json
库如何知道如何序列化任意类?在你的情况下,如果你的课程足够简单,你也许可以摆脱一些像
只序列化对象的成员。
反序列化需要类似于
不知道什么是预先构建的,但是如果对象足够简单,可以编写一个。重写JSONEncoder中的默认方法以查看inspect.getmembers(obj)(inspect是在
__dict__
中获取属性集的更可读的方法)。更新:@Alexandre Deschamps说,对于某些输入,isroutine比is方法工作得更好。
那么JSONEncoder类呢?
更新
我一定跳过了关于类中包含的数据的部分。如果您希望对任意Python对象进行合理的序列化,而不需要扩展编码器,那么您可以使用^{} 和
json
的组合。酸洗时,使用protocol=0将数据序列化为人类可读的ASCII。相关问题 更多 >
编程相关推荐