python之json模块 本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象。使用 JSON 函数需要导入 json 库import json。一、json模块常见用法1、json.dumps()、json.loads()、json.dump()、json.load()用法json.dumps()将python中的字典/列表转换为json字符串 [dict→str] 备注除了字典如果列表中的每个值都是字典也能转换为json字符串在 Python 中列表也可以作为 json.dumps() 的参数只是这个列表的每个值为一个字典json.dumps()的作用正是将 Python 对象包括列表、字典等序列化为 JSON 格式的字符串。json.loads()将json字符串转换为字典类型python对象 [str→dict]如果json字符串包含null也能将null转为python中对应的None在 Python 中列表也可以直接使用json.loads()方法但有一个关键前提这个列表必须是 JSON数组格式字符串。详细说明 json.loads()的作用是将 JSON 格式的字符串 解码为 Python 对象。它支持 JSON 的两种顶层结构 JSON 对象{}→ 转换为 Python 字典dictJSON 数组[]→ 转换为 Python 列表list备注如果要输出json中某个key对应的value需要先使用json.loads转为字典然后再使用字典对象[key]格式输出某个key对应的valuejson.dump()将数据转为json格式并写入文件无返回json.load()表示读取json文件返回python对象也即字典loads和dumps处理的是字符串load和dump处理的主要是文件2、json格式化json.dumps() 方法将python字典转/列表为 JSON 字符串后可以使用indent 参数定义缩进和换行。格式如下技巧1使用indent参数可进行缩进和换行data{a:1,b:2,c:3,d:4,e:5}json.dumps(data,indent4)#indent4 表示换行时候缩进4个字符json.dump(data,file,indent4)技巧2使用ensure_ascii参数可避免中文字符被转义成\uXXXX形式若为 True所有非 ASCII 字符会被转义成 \uXXXX 形式若为 False非 ASCII 字符会原样输出。默认值是 True。importjson data{name:张三}json_strjson.dumps(data,ensure_asciiFalse)print(json_str)技巧3除了字典如果列表中的每个值都是字典也能转换为json字符串格式的列表如下例子importjson# 假设有一个包含JSON类型数据的列表data[{name:wang,age:16,weight:168},{name:liu,age:26,weight:170}]# 使用json.dumps方法将列表转换为字符串形式data_strjson.dumps(data)print(data_str)运行结果如下[{name:wang,age:16,weight:168},{name:liu,age:26,weight:170}]3、json排序json.dumps() 方法提供了对结果中的键进行排序的参数json.dumps(x,indent4,sort_keysTrue)#json消息体换行后缩进4个字符键按字母顺序排序二、实践2.1、json.dumpsimportjson data{a:1,b:2,c:3,d:4,e:5}data2json.dumps(data)print(data2)运行的结果是{a:1,b:2,c:3,d:4,e:5}2.2、json.loadsimportjson jsonData{a:1,b:2,c:3,d:4,e:5};textjson.loads(jsonData)print(text)运行的结果是{a:1,b:2,c:3,d:4,e:5}2.3、json.dumpimportjson data{age: 12}fileopen(rD:\Document\Workspace\pywokrspace\test1\001\1.json,w,encodingutf-8)json.dump(data,file)# json.dump()函数的使用将json信息写进文件2.4、json.loadimportjsonfileopen(rD:\Document\Workspace\pywokrspace\test1\001\1.json,r,encodingutf-8)# json.load()函数的使用将读取json信息json5json.load(file)print(json5)三、python中字典和JSON的区别数据类型支持字典可以包含各种 Python 数据类型作为键和值例如整数、浮点数、字符串、列表、元组、字典等。JSON 主要支持字符串、数字、布尔值、对象类似于字典、数组和 null 。语法格式字典使用花括号 {} 键值对之间用冒号 : 分隔键和值可以是各种 Python 表达式。JSON使用花括号 {} 键值对之间用冒号 : 分隔但值必须是符合 JSON 规范的字符串、数字、布尔值、对象、数组或 null 。字典的键和值可以使用单引号、双引号如{id: 16, username: john_doe3, email: john3_3example.com}JSON的键和值一定是双引号如{id: 16, username: john_doe3, email: john3_3example.com}因为语法格式相似因此看上去很相似可以使用python中type()函数来查看变量类型。数据交换字典是 Python 内部的数据结构主要用于在 Python 程序中存储和操作数据。JSON 是一种用于数据交换的轻量级格式常用于在不同的编程语言和系统之间传输数据。序列化和反序列化要将 Python 字典转换为 JSON 格式需要使用相应的库如 json 模块进行序列化操作。从 JSON 字符串转换为 Python 字典也需要进行反序列化操作。四、JSON、dict转换中特殊等价关系