python错误:TypeError : the JSON object must be str, bytes or bytearray, not list

本文介绍了在处理接口数据时遇到的JSON转换问题。loads()函数需要一个字典类型的字符串作为参数,但传入的是一个列表,导致错误‘the JSON object must be str, bytes or bytearray, not list’。解决方案是确保数据格式正确,将列表转化为符合loads()要求的字符串。
摘要由CSDN通过智能技术生成

两个函数:

loads(param)

loads(param)是将文本字符串转换为json对象的函数,其函数名是load string 的缩写,意思是加载字符串。所以其参数param必须要是一个字典型的字符串。且字典的键必须用双引号来包裹。

dumps(param)

dumps(param)是将json数据对象转换为文本字符串的函数,其函数名是dump string 的缩写,意思是输出字符串,所以其参数param必须要是json对象,也就是loads()函数返回的数据类型。

接口数据:

"data": {
	"order_number": "2021060410425310728996",
	 "student_id": 18,
	 "pay_type": 1,
	 "total_pay": 0.03,
	 "checked_exam_list": [{
		  "id": 1,
		  "exam_id": 10001,
		  "result_type": 0
	  }]
 }

接口代码:

if checked_exam_list is not None:
	checked_exams = json.loads(checked_exam_list)

报错信息:

"data": {
  "code": -9,
  "message": "the JSON object must be str, bytes or bytearray, not list"
 },

debug:

checked_exam_list已经是json格式,loads的参数必须要是一个字典型的字符串

补充:json的两种格式:

1)对象格式:{“key1”:obj,“key2”:obj,“key3”:obj…}

2)数组/集合格式:[obj,obj,obj…]

例如:user对象用json数据格式表示

{“username”:“zhangsan”,“age”:28,“password”:“123”,“addr”:“北京”}

List 用json数据格式表示

[{“pid”:“10”,“pname”:“小米4C”},{},{}]

只要是对象就用{括起来},只要是集合就用【】括起来

注意:对象格式和数组格式可以互相嵌套,一个对象中的一个属性可以是一个集合或数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值