如何使用jsonpickle序列化Python类?

如何使用jsonpickle序列化Python类?,python,jsonpickle,Python,Jsonpickle,我正在VS代码上运行以下代码来序列化Python类: import json import jsonpickle import sys class P_C(object): def __init__(self, name = "default name", items = None): self.name = name self.items = items def get_name (self): return f"Name

我正在VS代码上运行以下代码来序列化Python类:

import json
import jsonpickle
import sys


class P_C(object):
    def __init__(self, name = "default name", items = None):
        self.name = name
        self.items = items 

    def get_name (self):
        return f"Name is: {self.name}"

    def get_items (self):
        return f"Items are: {self.items}"

    def get_name_items_dict (self):
        return dict (name = self.name, items = self.items )

p_c = P_C()

with open ("P_C.json", "w") as json_file:
    json_file.write (jsonpickle.encode(p_c))
在VS代码上运行此代码时,出现以下错误:

AttributeError: module 'jsonpickle' has no attribute 'encode'
但是,当我在Jupyter笔记本上运行完全相同的代码时,我得到了所需的输出,它位于p_C.json中:

{"items": null, "name": "default name", "py/object": "__main__.P_C"}
我已经检查过我在VS代码上使用的是Python3


谢谢

有没有给文件(或其他脚本)命名为
jsonpickle.py
?为什么需要jsonpickle?为什么不
json.dump(json\u文件,p\u c.get\u name\u items\u dict())
@Sadap,因为我正在序列化一个类,而不是数据。@jasonharper我这样做了。你认为我应该改名吗?@jasonharper这就是问题所在。我更改了我的文件名,现在它正在正常运行。谢谢!有没有给文件(或其他脚本)命名为
jsonpickle.py
?为什么需要jsonpickle?为什么不
json.dump(json\u文件,p\u c.get\u name\u items\u dict())
@Sadap,因为我正在序列化一个类,而不是数据。@jasonharper我这样做了。你认为我应该改名吗?@jasonharper这就是问题所在。我更改了我的文件名,现在它正在正常运行。谢谢!