调用api时,“字节”类型的对象不可JSON序列化

时间:2019-11-18 07:54:35

标签: django api django-rest-framework django-admin

我正在尝试保存一个涉及API调用的表单,但它会向我抛出一个错误

  

“字节”类型的对象不可JSON序列化。

当我调用data = json.dump(dump)时,它会引发以下错误

 def getAttributes(self, jsonObj=False):
        attributes = vars(self)
        data = {var: value for var, value in attributes.items() if not var.startswith('_')}
        print(data, "data")
        if jsonObj:
            import json
            data = json.dumps(data)

        return data

p.s .:在打印数据语句中,它返回了我一个字典。

3 个答案:

答案 0 :(得分:1)

只需更改此行

data = json.dumps(data)

json.dumps((data).encode("utf-8"))

答案 1 :(得分:0)

想通了!!只需将return语句更改为 返回json.dumps(data).encode(“ utf-8”)

答案 2 :(得分:0)

我猜您的value变量是字节序列,而不是字符串。您需要将其转换为Unicode。

data = {var: value.decode("utf-8") for var, value in attributes.items() if not var.startswith('_')}