Python Json数据解析

本篇主要介绍Python 中json数据如何解析、转化、保存和加载。

目录

Json数据解析

概念

作用

Json文件组成

Json转化为Python数据类型

Python数据类型转化为json

写入本地json文件

读取本地的json文件

总结


Json数据解析

概念

一种保存数据的格式

作用

可以保存本地的json文件,也可以将json串进行传输,通常将json称为轻量级的传输方式。

Json文件组成

{} 代表对象(字典)

\] 代表列表 : 代表键值对 , 分隔为两个部分 #### **Json转化为Python数据类型** 将json格式的字符串转化为python数据类型的对象 示例如下: ```python jstr = '{"name": "zhangsan", "gender": "nan", "hobby": ["乒乓球", "篮球", "羽毛球"], "param": {"a": "b"}}' pdata = json.loads(jstr) print(pdata) print(type(pdata)) print(pdata['hobby']) ``` 执行结果: ```bash {'name': 'zhangsan', 'gender': 'nan', 'hobby': ['乒乓球', '篮球', '羽毛球'], 'param': {'a': 'b'}} ['乒乓球', '篮球', '羽毛球'] ``` #### **Python数据类型转化为json** 将python数据类型的数据转化为json字符串。 示例如下: ```python import json pdata = {'name': 'zhangsan', 'gender': 'nan', 'hobby': ['乒乓球', '篮球', '羽毛球'], 'param': {'a':'b'}} jstr = json.dumps(pdata) print(jstr) print(type(jstr)) ``` 执行结果: ```bash {"name": "zhangsan", "gender": "nan", "hobby": ["\u4e52\u4e53\u7403", "\u7bee\u7403", "\u7fbd\u6bdb\u7403"], "param": {"a": "b"}} ``` #### **写入本地json文件** 写入的路径可以是绝对路径也可以是相对路径,示例使用的是相对路径。 示例如下: ```python path = './local.json' jsonData1 = {'name': 'zhangsan', 'gender': 'nan', 'hobby': ['乒乓球', '篮球', '羽毛球'], 'param': {'a':'b'}} with open(path, 'w') as f: json.dump(jsonData1, f) ``` #### **读取本地的json文件** 读取刚才写入的本地json文件。 示例如下: ```python path1 = './local.json' with open(path1, 'rb') as f: data = json.load(f) print(data) print(type(data)) ``` 执行结果: ```bash {'name': 'zhangsan', 'gender': 'nan', 'hobby': ['乒乓球', '篮球', '羽毛球'], 'param': {'a': 'b'}} ``` ### 总结 本篇主要介绍Python 中json数据如何解析、转化、保存和加载。

相关推荐
章豪Mrrey nical1 小时前
前后端分离工作详解Detailed Explanation of Frontend-Backend Separation Work
后端·前端框架·状态模式
Robot侠2 小时前
极简LLM入门指南4
大数据·python·llm·prompt·提示工程
派大鑫wink2 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
程序员爱钓鱼2 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
xUxIAOrUIII3 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home3 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
等....3 小时前
Miniconda使用
开发语言·python
zfj3213 小时前
go为什么设计成源码依赖,而不是二进制依赖
开发语言·后端·golang
Java&Develop3 小时前
Aes加密 GCM java
java·开发语言·python
weixin_462446233 小时前
使用 Go 实现 SSE 流式推送 + 打字机效果(模拟 Coze Chat)
开发语言·后端·golang