我不断收到此错误,但不明白为什么:
回溯(最近通话最近):文件 “ C:/Users/ferdin/PycharmProjects/Books/library.py”,第62行,在 carta.write_to_json_file()文件“ C:/Users/ferdin/PycharmProjects/Books/library.py”,第21行,在 write_to_json_file json.dump( lista,f)文件“ C:\ Users \ ferdin \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ json__init .py”, 179行,转储中 用于可迭代的块:文件“ C:\ Users \ ferdin \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ json \ encoder.py”, _iterencode中的第429行 从_iterencode_list(o,_current_indent_level)产生的文件“ C:\ Users \ ferdin \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ json \ encoder.py”, _iterencode_list中的第325行 从块文件“ C:\ Users \ ferdin \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ json \ encoder.py”中获取, _iterencode中的第438行 o = _default(o)文件“ C:\ Users \ ferdin \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ json \ encoder.py”, 179行,默认情况下 引发TypeError(f'{o。 class 类型的对象。名称}''TypeError:Book类型的对象不可JSON序列化
这是我的代码:
import json
from libro import Libro
class Library:
def __init__(self, filename):
self.__filename = filename
self.__lista = list()
self.read_from_json_file()
def read_from_json_file(self):
with open(self.__filename) as file:
self.__lista = json.load(file)
def add(self, c):
self.__lista.append(c)
def write_to_json_file(self):
with open(self.__filename, 'w') as f:
json.dump(self.__lista, f)
def dim(self):
return len(self.__lista)
def find(self, what):
ret = []
for c in self.__lista:
if what in c:
ret.append(c)
return ret
def delete(self, what):
for c in self.__lista:
if c == what:
self.__lista.pop(c)
return self.__lista
#
library=Library("test.csv")
book=Book()
book.set_name("Name")
[…]
library.add(book)
library.write_to_json_file()