怎么会引发这个错误?我输入了这个:
def json(self):
return json.dumps(
{
'items': self.items
}
)
并得到了那个错误(因为 self.items 是一个空的查询集(Django)
然后,
def json(self):
return json.dumps(
{
'items': [] # Pass in empty list to prove that the error was idiotic.
}
)
工作正常(这至少证明错误消息毫无值(value))
这是因为查询集定义了 repr() 并在它为空或类似荒谬的情况下将 '[]' 作为字符串返回?
最佳答案
查询集不是开箱即用的可序列化的。如果您尝试 list(self.items)
而不仅仅是 self.items
,只要项目本身是 JSON 可序列化的,那应该可以工作。
更新:即使它不为空也会引发异常。我不认为它会被接受为 Django 错误,尽管您当然可以尝试;正如我已经说过的,最简单的答案是使用 list(qs)
强制评估。
关于python - Django: "TypeError: [] is not JSON serializable"为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243002/