Traceback (most recent call last):
  File "E:\tuobao\public\handle_apidata.py", line 178, in <module>
    token = create_wholesale(1)
  File "E:\tuobao\public\handle_apidata.py", line 159, in create_wholesale
    res = libsapi.update(i, token=get_token, wholesaleManageInformation=wholesaleManageInformation,wholesaleManageOrderDetail=wholesaleManageOrderDetail)
  File "E:\tuobao\public\libapi.py", line 20, in update
    return super(libsapi,self).update(indata)
  File "E:\tuobao\common\baseapi.py", line 26, in update
    res=self.send_request(data=indata)
  File "E:\tuobao\common\baseapi.py", line 22, in send_request
    data1=json.dumps(data)
  File "E:\python\lib\json\__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "E:\python\lib\json\encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "E:\python\lib\json\encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "E:\python\lib\json\encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type function is not JSON serializable

运行报错,百度了一下说是json_dump(data)的时候有些内容不能序列化,

从错误信息来看,问题出现在尝试将一个函数对象进行JSON序列化时JSON模块默认无法序列化函数对象,因此当遇到函数对象时,会抛出TypeError: Object of type function is not JSON serializable的异常

在你的代码中,TypeError 异常被抛出时正在尝试序列化data变量为了解决这个问题,我们需要查看data变量的内容,并找出其中的函数对象,然后将其转换为可以序列化的格式

首先,你可以在代码中加入一些调试语句,输出data变量的内容,以便找出问题所在例如,在调用json.dumps(data)之前,可以添加一行代码print(data)来查看data的内容这样你就能查看data中是否有函数对象,并找出是哪个部分的代码将其包含进来的

假设经过调试后,你发现data中的某个键对应的值是函数对象,那么你可以考虑将该函数对象的返回值或其他可序列化的信息作为值

解决方法找到对应的json.dump(data)之前将对应的data数据打印出来看是否有不可序列化的内容

这个时候看到是token取值有问题,将代码中的token对应的函数get_token改成对应的返回值

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐