JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

JSON在python中分别由list和dict组成。

这是用于序列化的两个模块

  • json: 用于字符串和python数据类型间进行转换
    Json模块提供了四个功能:dumps、dump、loads、load
  • pickle: 用于python特有的类型和python的数据类型间进行转换
    pickle模块提供了四个功能:dumps、dump、loads、load

json.dumps()把数据类型转换成字符串
json.dump()把数据类型转换成字符串并存储在文件中
json.loads()把字符串转换成数据类型
json.load()把文件打开从字符串转换成数据类型

json是可以在不同语言之间交换数据的,而pickle只在python之间使用。
json只能序列化最基本的数据类型,josn只能把常用的数据类型序列化(列表、字典、列表、字符串、数字、),比如日期格式、类对象!josn就不行了。而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。

案例1 dumps

将python中的字典数据编码为 JSON字符串 字符串

1 import json
2
3 test_dict = {'one':1, 'two':{2.1:['a', 'b']}
4 print(test_dict)
5 print(type(test_dict))
6 #dumps 将数据转换成字符串
7 json_str = json.dumps(test_dict)
8 print(json_str)
9 print(type(json_str))

输出:

{'one':1, 'two':{2.1:['a', 'b']}
<class 'dict'>
{"one":1, "two":{2.1:["a", "b"]}
<class 'str'>

案例2 loads

用于解析JSON数据,返回python中的的字典数据类型

10 new_dict = json.loads(json_str)
11 print(new_dict)
12 print(type(new_dict))

输出:

{'one':1, 'two':{2.1:['a', 'b']}
<class 'dict'>

案例3 dump

:将python dict数据写入json文件中

1 with open("../config/record.json","w") as f:
2     json.dump(new_dict,f)
3     print("加载入文件完成...")

json文件内容:

1 {"one":1, "two":{2.1:["a", "b"]}

案例4 load

把文件打开,并把JSON字符串变换为python dict数据类型

1 with open("../config/record.json",'r') as load_f:
2     load_dict = json.load(load_f)
3     print(load_dict)
4     print(type(load_dict))

输出:

{'one':1, 'two':{2.1:['a', 'b']}
<class 'dict'>

案例5 格式化写入json文件

两种方法均可以实现:
1、将python字典数据用dumps()方法编码成JSON字符串,然后再写入json文件中

with open("../config/format_json.json", 'w') as write_f:write_f.write(json.dumps(load_dict, indent=4, ensure_ascii=False))

2、直接用dump()方法将python字典数据写入json文件中

with open("../config/format_json.json", 'w') as write_f:json.dump(load_dict, write_f, indent=4, ensure_ascii=False)

格式化写入json后,文件内容:

{'one': 1,'two': {2.1: ['a','b']}
}

python读写json、格式化写入json文件相关推荐

  1. python输出csv文件-Python之读取与写入CSV文件

    原标题:Python之读取与写入CSV文件 本文作者:闫续文 文字编辑:张梦婷 技术总编:张学人 有问题,不要怕!访问 CSV(Comma-Separated Values)格式是电子表格和数据库最常 ...

  2. idea之json格式化插件Json Parser

    idea之json格式化插件Json Parser 安装插件 安装后重启idea 使用插件 Json Parser 为啥要用Json Parser,别问你也可以不用,废话不说,自己品! 安装插件 安装 ...

  3. java导出json格式化的json文件及xml文件

    场景 点击ztree树的节点,导出该节点下的所有子节点数据(要求:导出过程不跳转页面) 前端: <div id="rolesGroupmenu" class="ea ...

  4. c语言中json格式化输出,JSON格式化输出

    JSON格式化输出 今天有个需求是对输出的JSON进行格式化 首先想到的就是jsBeautifier之类的小插件 搜索了一番看到有一位朋友回答JSON.stringify可以输出格式化的JSON字符串 ...

  5. csv java web 导入_DAY5-step9 使用CSV模块和Pandas在Python中读取和写入CSV文件

    什么是CSV文件? CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据. CSV是一种紧凑,简单且通用的数据交换通用格式. 许多在线服务允许其用户将网站中的表格数据导出到CSV文件中. CSV ...

  6. pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...

    前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Python中读写CSV文件.有几种不同的方法,例如,您可以使用Py ...

  7. 用python的pandas打开csv文件_使用CSV模块和Pandas在Python中读取和写入CSV文件

    什么是CSV文件? CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据.CSV是一种紧凑,简单且通用的数据交换通用格式.许多在线服务允许其用户将网站中的表格数据导出到CSV文件中.CSV文件将 ...

  8. [转载] pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...

    参考链接: 使用Pandas在Python中读写CSV文件 前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Pyth ...

  9. python入门文件读取与写入_初学者Python:读取和写入同一文件

    每个打开的文件都有一个隐式指针,该指针指示将在何处读取和写入数据.通常,它默认为文件的开头,但是如果您使用a(追加)模式,则默认为文件的结尾.还值得注意的是,w即使您添加+到该模式,该模式也会截断您的 ...

最新文章

  1. 哥伦比亚大学AI实验室主任Hod Lipson:阻碍无人驾驶技术发展的7个误区
  2. selenium 中装饰器作用
  3. 阿里数学竞赛可以报名了!奖金增加到400万元,题目面向大众公开征集
  4. 25元、264KB内存的微处理器,树莓派官方出品,自带快速休眠模式
  5. All about OpenGL ES 2.x – (part 2/3)(转载)
  6. ubuntu下硬盘相关
  7. 转:【Python3网络爬虫开发实战】6.4-分析Ajax爬取今日头条街拍美图
  8. Linux 探索之旅 | 第五部分第七课:Shell 实现图片展示网页
  9. 基于51单片机ds18b20智能温控风扇Proteus仿真
  10. idea代码格式美化快捷键
  11. 巴比特 | 元宇宙每日必读:时薪100万,「虚拟主播」的吸金能力被证实,其背后的公司IPO申请获批...
  12. android简单点餐系统_微信点餐收银系统哪个好用?
  13. js原生下载excel(xlxs及xls格式)、word、png(图片格式)方法
  14. 微生物群-肠道-大脑轴:从运动到情绪
  15. Golang sort包Search函数源码分析
  16. Html HBuilder封装APP
  17. matlab矩阵变成行向量,matlab中将一个矩阵按照行拼成一个行向量应该怎么输?
  18. Excel-计算数列元素间的和差
  19. Zabbix监控平台部署+监控客户端
  20. v-model的基本使用

热门文章

  1. flex匹配json number, string
  2. flask后台管理系统快速开发案例之bootstrap搭建前端页面框架
  3. 教你炒股票3:你的喜好,你的死亡陷阱
  4. ubuntu ll 命令
  5. android 如何把.swf作为开机动画,开机动画制作与使用教程
  6. 数组的map方法返回值
  7. MybatisPlus多表连接查询
  8. vue.js进入了vue3 RC阶段,正确姿势霸气迎接
  9. c语言中将结构体写入文件,C语言中将结构体写入文件
  10. 开发必备!2019年最新android常用开源库汇总上篇(持续更新)