python序列化和反序列化_Python 中 json 数据序列化和反序列化

b3bb5932c69c56534600a474c0add2bf.png

1.Json 定义

定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。JSON 的数据格式其实就是 python 里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。

特点:简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:

对象表示为键值对  

数据由逗号分隔  

花括号保存对象

方括号保存数组  

序列化简单定义:变成 json 格式。定义:变成json格式。

反序列化简单定义: json 格式变其它

"""字典格式与json格式对比"""

# 字典格式:

d = {'a': 123,'b': {'x': ['A', 'B', 'C']}}

# json格式

# 必须是双引号(因为java等其它语言有使用双引号表示字符串,单引号不表示字符串)

{"a": 123,"b": {"x": ["A", "B", "C"]}}

在 python 中,有专门处理 Json 格式的模块 ——> json 和 picle模块

Json 模块提供了四个方法: dumps、dump、loads、load

pickle 模块也提供了四个功能:dumps、dump、loads、load

2.json.dumps() 序列化

将 python 的值转换为 Json 格式的字符串。 

import json

res = {"userAccount":"admin","loginPwd":"123456"}

print(type(res))

du_res = json.dumps(res)

# print(du_res)

print(type(du_res))

# 结果如下

# json序列化过程中的中文显示

import json

res = {"userAccount":"管理员","loginPwd":"123456"}

du_res = json.dumps(res)

print(du_res)

# 结果如下

{"userAccount": "管理员", "loginPwd": "123456"}

# 转码

import json

res = {"userAccount":"管理员","loginPwd":"123456"}

du_res = json.dumps(res,ensure_ascii=False)

print(du_res)

#结果如下

{"userAccount": "管理员", "loginPwd": "123456"}

3.json.loads() 反序列化

将 json 格式的字符串转换成 python 的数据类型  

import json

res = {"userAccount":"管理员","loginPwd":"123456"}

du_res = json.dumps(res,ensure_ascii=False)

print(type(du_res))

# 将 json 格式的字符串转换成 python 的数据类型

dictlo_res = json.loads(du_res)

print(type(lo_res))

# 结果如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重写navigationController的push方法后,出现卡顿现象

在使用navigation的pushViewController进行push的时候,两个页面间的动画会出现卡顿一下再推出的效果,是因为iOS7 viewController背景颜色的问题,看到大神的博客上说:其实不是卡顿,是由于透明色颜色重叠后视觉上的问题&…

硬件:RS232基础知识笔记

个人计算机上的通讯接口之一,由电子工业协会(ElectronicIndustriesAssociation,EIA)所制定的异步传输标准接口。通常RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25)的型态出现&#…

普通类和抽象类有哪些区别?

抽象类不能被实例化抽象类可以有抽象方法,抽象方法只需申明,无需实现含有抽象方法的类必须申明为抽象类抽象类的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类抽象方法不能被声明为静态static抽象方法不能用 private 修饰&#x…

正则表达式格式化日期

var str "2016年4月11日";str str.replace(/[\u5e74|\u6708]/g,"-").replace(/\u65e5/g,""); 转载于:https://www.cnblogs.com/smght/p/5379514.html

硬件:RS422基础知识笔记

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

mysql和php数据交互_php mysql交互

1.接受数据if($_POST){$uname trim($_POST[‘uname‘]);$pasd md5($_POST[‘pasd‘]);2.查询数据库$conn new mysqli(‘localhost‘,‘root‘,‘root‘,‘qiye‘);$sql "select * from admin where uname ‘$uname‘ and pasd ‘$pasd‘ ";$res $conn->que…

硬件:串口握手基础知识笔记

RS-232通行方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定时采用使用相同的波特率。尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。这时需要串口的握手功能。在这一部分&#xff0…

PyV8

待完善 pyv8是个js解析引擎, PyV8 是 V8 引擎的 Python 语言封装,这是 Python 和 JavaScript 对象之间的桥,支持在 Python 脚本中调用 V8 引擎。 # -*- coding: cp936 -*-import PyV8class Test():def js(self):ctxt PyV8.JSContext()ctxt.e…

抽象类能使用 final 修饰吗?

抽象类就是要被继承的,不能用final声明,final声明的类不可继承

python高斯求和_二、算法分析

一、什么是算法分析程序和算法的区别:算法是对问题解决的分步描述程序是采用某种编程语言实现的算法,同一个算法通过不同的程序员采用不同的编程语言,能产生很多程序算法分析的概念:算法分析主要就是从计算资源消耗的角度来评判和…

硬件:交换机基础知识

1、交换机的概念交换机(Switch)意为“开关”,是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交…

PhantomJS 与python的结合

待完善 一.简介 PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器 做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选…

mysql对数据库的操作_MySQL数据库对数据库的操作

1.创建数据库mysqlgt; create database if not exists tongcheng; Query OK, 1 row affected (0.01 sec) mysqlgt; 2.查看创建数1.创建数据库mysql> create database if not exists tongcheng;Query OK, 1 row affected (0.01 sec)mysql>2.查看创建数据库时的选项mysql&g…

static用途

static关键字的用途 一句话描述就是:方便在没有创建对象的情况下进行调用(方法/变量)。 显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。 static可以用来修饰类的…

硬件:宽带猫(光猫)的基础知识

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

筛法求素数

一般&#xff1a; #include<stdio.h> int main() { int a[100], i, j; for(i 2; i < 100; i) a[i] 1;//令2-99都为1 for(i 2; i < 100/2; i)//2 - 到 范围的一半的所有倍数 { if(a[i] 1)//还未被筛 素数不会被筛 合数会被筛 …

mysql实用管理器添加外键_MySQL 添加外键

MySQL 添加外键MySQL 添加外键DROP TABLE IF EXISTS nation;CREATE TABLE nation(pii_Nation smallint(2) unsigned NOT NULL default 0,pii_NatinoName varchar(40) NOT NULL default ,PRIMARY KEY (pii_Nation))ENGINEInnoDB DEFAULT CHARSETutf8;DROP TABLE IF EXISTS user…

Sentinel介绍和Windows下安装Sentinel-dashboard

Sentinel 是什么&#xff1f; 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景&#xff1a;Sentinel 承接…

盘点物联网常用的八种通信协议

目录 1、蓝牙 2、Zigbee 3、6LoWPAN 4、Wi-Fi 6、ModBus 7、PROFINET 8、EtherCAT 1、蓝牙 兼容的蓝牙IoT传感器非常适合需要短距离连接和低功率通信的应用。蓝牙协议的有效范围为50到100米&#xff0c;支持高达1 Mbps的数据传输速率。 最近&#xff0c;物联网开发人员已经表现…

java 发邮件_java实现邮件的发送

文章所用jar文件链接&#xff1a;https://pan.baidu.com/s/1YaxhdkaCTC4TUDL-y9-ASQ提取码&#xff1a;30ow程序入口&#xff0c;发送工具类package test;import org.apache.commons.mail.EmailException;/*** 邮箱发送工具类* author Administrator**/public class EmailUtil …