TypeError: the JSON object must be str, bytes or bytearray, not dict

2024-03-05 10:04

本文主要是介绍TypeError: the JSON object must be str, bytes or bytearray, not dict,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文章:https://blog.csdn.net/yuan2019035055/article/details/124934362

Python基础系列(一)搞懂json数据解析与字典之间的关系

代码:

在这里插入图片描述
在这里插入图片描述

报错信息:

TypeError: the JSON object must be str, bytes or bytearray, not dict

C:\Users\Administrator\PycharmProjects\XUNI_TEST\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/XUNI_TEST/venv/JSON与字典的互相转换.py
Traceback (most recent call last):File "C:/Users/Administrator/PycharmProjects/XUNI_TEST/venv/JSON与字典的互相转换.py", line 14, in <module>datadict = json.loads(data)File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 341, in loadsraise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not dict
{'name': 'xiaowang', 'info': {'sex': 'female', 'age': 16, 'birth': 1225665}} <class 'dict'>

报错翻译:

类型错误:JSON对象必须是str、bytes或bytearray,而不是dict

报错原因:

误将字典当成json,将字典转化成字典(格式不对)

改正:

在这里插入图片描述

输出:

C:\Users\Administrator\PycharmProjects\XUNI_TEST\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/XUNI_TEST/venv/JSON与字典的互相转换.py
{'name': 'xiaowang', 'info': {'sex': 'female', 'age': 16, 'birth': 1225665}} <class 'dict'>
{"name": "xiaowang", "info": {"sex": "female", "age": 16, "birth": 1225665}} <class 'str'>
{'name': 'xiaowang', 'info': {'sex': 'female', 'age': 16, 'birth': 1225665}} <class 'dict'>

知识点:

json.dumps() :将 dict 转为json格式的字符串 【标准的 Json 文件语法中是以双引号包裹字符串的】
json.loads():将json数据转成dict类型 【 json字符串→ python对象(dict)】【主要用于解码,爬虫】
json.dump():将字典数据写入 json 文件中
json.load():读取本地 Json 文件中的数据,将数据转换为 Python 的字典格式,供其他函数调用。
在这里插入图片描述

究其原因,我对JSON和Python字典的相互转化的语法不够清晰,脑子内没有相对应的转化流程图,导致“照搬照抄”书本代码,没有实际思考。因此,我要观看JSON和Python字典的相互转化的相关视频,通过自身总结,多加练习JSON和Python字典的相互转化

这篇关于TypeError: the JSON object must be str, bytes or bytearray, not dict的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/776155

相关文章

bytes.split的用法和注意事项

当然,我很乐意详细介绍 bytes.Split 的用法和注意事项。这个函数是 Go 标准库中 bytes 包的一个重要组成部分,用于分割字节切片。 基本用法 bytes.Split 的函数签名如下: func Split(s, sep []byte) [][]byte s 是要分割的字节切片sep 是用作分隔符的字节切片返回值是一个二维字节切片,包含分割后的结果 基本使用示例: pa

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

特殊JSON解析

一般的与后台交互;都会涉及到接口数据的获取;而这里的数据一般情况就是JSON 了;JSON 解析起来方便;而且数据量也较小一些;所以JSON在接口数据返回中是个很不错的选择。 下面简单说下JSON解析过程中的一些案例: 这里我用到了三方的架包:fastjson-1.1.39.jar 架包 可以在我的博客中找到下载;或者网上找下 很多的; 这里主要就是映射  关系了;这就要求:实体类的名称和

用ajax json给后台action传数据要注意的问题

必须要有get和set方法   1 action中定义bean变量,注意写get和set方法 2 js中写ajax方法,传json类型数据 3 配置action在struts2中

go json反序列化成指定类型

简介 简单的介绍一下使用go的json库,将json字符串反序列化成接口中指定的实现类 代码如下 package usejsontype ExamInterface interface {CheckRule(data any) bool}type IntStru struct {DefalutVal int `json:"defalut_val"`Max int `json:

Java构造和解析Json数据的两种方法(json-lib构造和解析Json数据, org.json构造和解析Json数据)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别。下面首先介绍用json-lib构造和解析Json数据的方法示例。 一、介绍       JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json

Ajax中根据json数据不同,对页面上的单选框Radio进行回显

Ajax中根据json数据不同,对页面上的单选框Radio进行回显 js代码: $(document).ready(function(){$.ajax({type: "POST",url: path+"/pop/nowTodayMeet2",dataType: "json",success: function(data){$("#discussTopicsEdit").val(da