当前位置: 首页 > 编程日记 > 正文

json的序列化与反序列化

json 是一种轻量级的数据交换格式,也是完全独立于任何程序语言的文本格式。

本文介绍json字符串的序列化与反序列化问题。

  • 序列化 是指将变量(对象)从内存中变成可存储或可传输的过程。
  • 反序列化 是指将变量内容从序列化的对象重新读到内存里的过程。

1、在json模块中,dump()dumps() 都实现了序列化。

dump():将dict对象序列化到文件中(文件中存储json字符串)。

import jsona_dict = {'a': 11, 'b': 22}
a_str = json.dump(a_dict, open('demo.json', 'w'))

dumps():将dict对象序列化为json字符串,仍在内存中。

import jsona_dict = {'a': 11, 'b': 22}
a_str = json.dumps(a_dict)
print(type(a_dict))  # <class 'dict'>
print(type(a_str))  # <class 'str'>

2、在json模块中,load()loads() 都实现反序列化。

load():针对文件句柄,从文件中读取json字符转换为dict

import jsona_json = json.load(open('demo.json', 'r'))
print(type(a_json))  # <class 'dict'>
print(a_json)  # {'a': 11, 'b': 22}

loads():针对内存对象,将json字符串转换为dict

import jsona_str = '{"a": 11, "b": 22}'
a_json = json.loads(a_str)
print(type(a_json))  # <class 'dict'>
print(a_json)  # {'a': 11, 'b': 22}

注意:json字符串的key为单引号时,用json.loads()会报错。

a_str = "{'a': 11, 'b': 22}"
a_json = json.loads(a_str)# json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

相关文章:

socket 995 错误 boost

这个错误的中文解释是&#xff1a;由于线程退出或应用程序请求&#xff0c;已中止 I/O 操作。 最近几天学习boost asio 在抄官方的一个实例代码时遇到 了&#xff0c;这个错误搞了我三天才解决&#xff0c;就是在一行代码中少了一个 s 所致。 正确的代码是这样 的 boost::asio:…

几何图形在logo设计中的有哪些情感意义?

作为一名合格的UI设计师&#xff0c;工作中遇到的问题有很多&#xff0c;例如logo设计&#xff0c;是很多UI设计师的一个日常工作之一&#xff0c;小编今天为大家介绍的UI设计培训教程就是几何图形在logo设计中的有哪些情感意义?希望能够帮助到大家。 UI设计培训教程&#xff…

Linux自学笔记——haproxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理&#xff0c;支持虚拟主机&#xff0c;它是免费、快速并且可靠地一套解决方案。HAProxy特别适用于那些负载特大的web站点&#xff0c;这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上&#xff0c;完…

如何利用pyecharts绘制炫酷的关系网络图?

如何利用pyecharts绘制炫酷的关系网络图 这是本学期在大数据哲学与社会科学实验室做的第六次分享了。 第一次分享的是&#xff1a; 如何利用“wordcloudjieba”制作中文词云&#xff1f; 第二次分享的是&#xff1a; 如何爬取知乎中问题的回答以及评论的数据&#xff1f; …

设Excle的cell中显示一个下拉列表选择框

描述&#xff1a;我想让excle的sheet页中的B列的每个cell输入内容的时候将A列所有行的内容作为下拉列表的选择内容 效果如下&#xff1a; 实现的步骤如下&#xff1a; 1.点击B列的头&#xff0c;选中整列 2.点击菜单栏的“数据”-》“数据有效性”&#xff0c;弹出如下的对话框…

Python培训中有哪些是必须学的运算符

不管是学Python技术还是其他的编程技术&#xff0c;运算符的学习都是少不了的&#xff0c;本期小编为大家推荐的教程就是关于Python培训中有哪些是必须学的运算符?来看看下面的详细介绍内容。 Python培训中有哪些是必须学的运算符? 布尔值&#xff1a;值只有两个&#xff0c;…

centos6 搭建heartbeat

Heartbeat是High-Availability Linux Project (Linux下的高可用性项目)的产物&#xff0c;是一套提供防止业务主机因不可避免的意外性或计划性宕机问题的高可用性软件。Heartbeat可以从Linux-HA 项目Web 站点免费获得&#xff0c;它提供了所有HA &#xff08;高可用性&#xff…

标准C++中的string类的用法总结

相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧&#xff1f;的确&#xff0c;MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架&#xff0c;还有没有这样使用起来非常方便的类呢&#xff1f;答案是肯定的。也许有人会说&#xff0c;即使不用M…

NCEPU:线下组队学习周报(007)

线下组队学习 经过一段时间的准备&#xff0c;我们组织的线下组队学习逐步进入正轨。欢迎华北电力大学保定校区的伙伴加入进来大家一起学习一起成长。 我们开展组队学习的内容为&#xff1a; &#xff08;1&#xff09;周志华的《机器学习》&#xff08;西瓜书&#xff09; …

java培训面试技巧分享

很多人在学会java技术之后&#xff0c;就开始筹备自己的面试了&#xff0c;java技术在互联网行业的需求是很大的&#xff0c;所以内卷是很严重的&#xff0c;在面试环节一定要全力以赴才行&#xff0c;下面小编就教大家一些java培训面试技巧&#xff0c;希望能帮助到大家。 jav…

Python线程锁

多线程适用于IO密集型&#xff0c;多线程实现方式有两种&#xff0c;详见下方例子 例子&#xff1a; import threading class MyThread(threading.Thread): def __init__(self, args): #使用super写法&#xff0c;按照父类.方法的方式直接重写 super(MyThread, self).__init__(…

session_id

<?php session_start(); echo session_id(); // 输出 dqr58dnuqj2gufvg4o3tmjb9v4?>设置 session_id()<?php session_id("NowaMagic"); session_start(); echo session_id(); ?>程序恢复session&#xff0c;首先要知道session_id&#xff0c;大家通过…

【青少年编程】【二级】寻找宝石

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

零基础参加java培训主要学什么

互联网行业永远是一个需求非常大的行业&#xff0c;尤其是技术人员岗位&#xff0c;java技术岗一直很受大家的关注&#xff0c;不少学员都是零基础开始学&#xff0c;那么零基础参加java培训主要学什么呢?来看看下面的详细介绍。 零基础参加java培训主要学什么?其实无论学什么…

python pexpect

123456789101112131415161718192021222324252627282930313233343536373839404142434445Python 远程批量修改密码脚本#tar -zxvf pexpect-3.0.tar.gz#cd pexpect-3.0#python setup.py install#!/usr/bin/env python#coding:utf8import pexpect impo…

牧小熊:Adobe Illustrator 在科研作图中的应用!

聂雄伟&#xff0c;华中农业大学&#xff0c;Datawhale原创作者。 关于大数据的完整讲解&#xff01;电商数据分析项目总结&#xff01;数据项目总结&#xff1a;蛋壳公寓租金分析&#xff01;数据项目总结&#xff1a;王者荣耀总决赛预测&#xff01;你要的用户画像实践来了&…

win7,windowsXP安装mysql-5.1.49-win32,中文版、英文版,通吃

安装过程与其它Windows安装程序一样&#xff0c;首先出现的是安装向导欢迎界面[img]file:///C:/Users/房继诺/AppData/Roaming/Tencent/Users/1194361820/QQ/WinTemp/RichOle/0U9%7BVWW%60KM~S2X)VM2QF0N.jpg[/img] 直接点击“Next”&#xff0c;继续&#xff0c;选择安装类型这…

UI设计培训教程分享:UI设计师的色彩使用技巧

作为一名合格的UI设计师&#xff0c;色彩的使用是非常重要的&#xff0c;一个专业的UI设计师对于UI设计色彩的搭配是非常的出色的&#xff0c;下面小编就为大家分享UI设计培训教程&#xff1a;UI设计师的色彩使用技巧 UI设计培训教程分享&#xff1a;UI设计师的色彩使用技巧 一…

hive 使用技巧笔记

来源&#xff1a;http://michael-roshen.iteye.com/blog/2115268 例子&#xff1a; INSERT OVERWRITE TABLE prices_collected_${hiveconf:wid_version} select pc.collect_id as product_id , regexp_extract(pc.price,(\\d*\\.?\\d),1) as price , pc.region, as location…

GNU make manual 翻译( 一百四十九)

继续翻译 5.7.4 The --print-directory Option ------------------------------------If you use several levels of recursive make invocations, the -w or --print-directory option can make the output a lot easier to understand by showing each directory as make sta…

【青少年编程】马雷越:商品价格竞猜

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

女生参加web前端培训压力大吗

女生参加web前端培训压力大吗?这个问题很多人都是想知道的&#xff0c;因为对于互联网行业来说&#xff0c;大部分都是男性&#xff0c;尤其是技术岗位&#xff0c;女生做前端压力大小和能力也有很大的关系&#xff0c;前端技术好工作效率高&#xff0c;那么压力相对较低。 女…

Android 入门开发

哈哈 我已经学会Android开发了 而且还发布了两款产品 转载于:https://www.cnblogs.com/Aixieer/archive/2012/10/04/2711443.html

整理了一下Asp.net源码常见问题(完善中...),欢迎大家补充修正(最后更新于06-01)!...

以下是一些51aspx网友经常反馈的问题&#xff0c;特总结放在下面&#xff0c;本部分内容会陆续更新。同时也提醒广大网友在仔细查看源码项目对应的运行环境及每个代码中所附的文本文件《51aspx源码必读.txt》。 Q&#xff1a;打开51aspx上网站源码项目需要什么样的软件环境&…

谢文睿:西瓜书 + 南瓜书 吃瓜系列 1. 一元线性回归

Datawhale南瓜书是经典机器学习教材《机器学习》&#xff08;西瓜书&#xff09;的公式推导解析指南&#xff0c;旨在让在学习西瓜书的过程中&#xff0c;再也没有难推的公式&#xff0c;学好机器学习。 相关内容&#xff1a; 西瓜书公式推导讲解来了&#xff01;0. 导学 后台…

Python培训教程分享:“高效实用” 的Python工具库

作为一名合格Python技术员&#xff0c;对于Python工具库的使用是少不了的&#xff0c;本期Python培训教程就为大家分享的是““高效实用” 的Python工具库”&#xff0c;希望能够帮助到大家。 Python培训教程分享&#xff1a;“高效实用” 的Python工具库&#xff1a; 1、Reque…

LNMP安装与启动脚本编写

1、安装mysql 1cd /usr/local/src/ 下载mysql&#xff1a; 1wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72-linux-x86_64-glibc23.tar.gz 解压&#xff1a; 1tar zxvf/usr/local/src/mysql-5.1.72-linux-x86_64-glibc23.tar.gz 更改命名&#xff1a; 1mv mysql-5…

Flash Builder 找不到所需的Adobe Flash Player调试器版本的解决办法

Flash Builder在Debug时出现的问题&#xff1a;Flash Builder 找不到所需的Adobe Flash Player调试器版本 解决方法&#xff1a; 1. 进入Flash Builder的安装目录 C:\Program Files\Adobe\Adobe Flash Builder 4.6\player\win\11.1 2. 安装flashplayer_11_plugin_debug.exe&…

谢文睿:西瓜书 + 南瓜书 吃瓜系列 2. 多元线性回归

Datawhale南瓜书是经典机器学习教材《机器学习》&#xff08;西瓜书&#xff09;的公式推导解析指南&#xff0c;旨在让在学习西瓜书的过程中&#xff0c;再也没有难推的公式&#xff0c;学好机器学习。 以往内容&#xff1a; 西瓜书公式推导讲解来了&#xff01;0. 导学1. 一…

UI设计培训分享:ui设计师如何培养设计思维?

作为一名UI设计师&#xff0c;工作上经常会遇到思维碰撞的问题&#xff0c;培养自己的设计思维是大部分UI设计师都需要的&#xff0c;那么ui设计师如何培养设计思维呢?来看看下面的详细介绍。 UI设计培训分享&#xff1a;ui设计师如何培养设计思维? 一、因舍而得 正如我们看到…