所以我有这样格式的 JSON 请求:
{
"item_ids": [635,10,692,194,9412],
"gender": "male",
"number_results": 5
}
我正在尝试解析“item_ids”中的数组。但是我收到了标题中的错误消息。这是我的代码:
resto_id = json.loads['item_ids']
data = json.dumps(resto_id)
我也试过这个:
response = requests.get("http://127.0.0.1:8520/recommend_multi")
users = json.loads(response.text)
data = users['item_ids']
但是给了我一个错误:
TypeError: Object of type JSONDecodeError is not JSON serializable
编辑:也许这会有所帮助:
@app.route('/recommend_multi', methods=['POST'])
def recommend_multi():
dct={}
new_user = 'newusername'
try:
e=""
resto_id = json.loads['item_ids']
data = json.dumps(resto_id)
# response = requests.get("http://127.0.0.1:8520/recommend_multi")
# users = json.loads(response.text)
# data = users['item_ids']
gender = request.json['gender']
resto_rec = float(request.json['number_results'])
input_dict = {'id_resto': data,
'gender': [gender, gender, gender, gender, gender], 'username': [new_user, new_user, new_user, new_user, new_user]}
dct = {"items": input_dict}
dct2 = {"data": dct, "message":"sukses", "success":True}
except Exception as e:
dct2 = {"data": dct, "message":e, "success":False}
return jsonify(dct2)
最佳答案
问题出在这段代码中:
except Exception as e:
dct2 = {"data": dct, "message":e, "success":False}
您基本上是在尝试对异常 e
进行 JSON 序列化,这是不可能的。您需要使用 JSON 可序列化的内容,例如异常的字符串表示形式,例如使用 str(e)
:
except Exception as e:
dct2 = {"data": dct, "message":str(e), "success":False}
关于python - 类型错误 : Object of type TypeError is not JSON serializable Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68108446/