gpt4 book ai didi

python json对象数组不可序列化

转载 作者:行者123 更新时间:2023-11-30 22:49:21 24 4
gpt4 key购买 nike

我有一个循环中的类和数组。我正在填充该对象并将其附加到数组中。如何通过JSON将数组数据传递到Web端?我收到一个错误,提示 JSON 不可序列化。如何序列化为 JSON?

class myclass(object):
def __init__(self,vehicle,mng01):
self.vehicle = vehicle
self.vehicle = vehicle

#--Main function--
@subApp.route('/jsontry', method=['POST'])
def data():
for x in list:
vehicle_sum.append(myclass( x,str(mng01))

return json.dumps({'success':'1','vehicle':vehicle_sum})

最佳答案

它是否说 myclass 对象不可 JSON 序列化?这是因为 json.dumps(..) 无法知道如何对您的类进行 JSON 序列化。您需要写下您的 custom encoder to do that .

下面是一个示例实现。我确信您可以根据您的用例修改它。

import json

class Temp(object):
def __init__(self, num):
self.num = num

class CustomEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Temp):
return {"num": obj.num}
#Let the base class handle the problem.
return json.JSONEncoder.default(self, obj)

obj = [Temp(42), Temp(42)]


print json.dumps(obj, cls=CustomEncoder)

#Output: [{"num": 42}, {"num": 42}]
<小时/>

如果您不想要过于复杂的东西,您可以执行以下操作:

all_vehicles = [{"vehicle": x.vehicle} for x in vehicle_sum]
json.dumps({'success':'1','vehicle':all_vehicles)

关于python json对象数组不可序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39827862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com