python读写json_python格式化json

python读写json_python格式化jsonJSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。JSON在python中分别由list和dict组成。这是用于序列化的两个模块:json:用于字符串和p

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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'
		]
	}				
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183015.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Window平台下通过cmd命令查看端口占用、查看进程、结束进程「建议收藏」

    Window平台下通过cmd命令查看端口占用、查看进程、结束进程「建议收藏」Window平台下通过cmd命令查看端口占用、查看进程、结束进程一、概述:在学习进程间通讯的时候,我们知道有一种通讯方式叫做socket。对于跨主机之间的进程通讯,这种方式更为常见,比如常见的基于B/S架构的web服务就是这种通讯方式的一个常见应用,客户端通过IP+PORT找到位于服务端上监听此端口的进程,从而与该进程进行数据通…

    2022年5月12日
  • 类型转换异常处理java.lang.RuntimeException

    类型转换异常处理java.lang.RuntimeException前几天在做一个安卓项目的时候一直报java.lang.RuntimeException错,一直调试不出来,今天突然又灵感是不是文件配置出错了,果然在清单文件中少了一句 android:name=”.KXApplication”。02-0510:19:52.429:E/AndroidRuntime(16026):java.lang.RuntimeException:Una

    2022年7月18日
  • unity3d的入门教程_Unity3D缺点

    unity3d的入门教程_Unity3D缺点Unity3D新手入门初级教程U3D是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。可发布游戏至Windows、Mac、Wii、iPhone、Windowsphone8和Android平台。也可以利用Unitywebplayer插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Macwidgets所支持!U3D现已经占领了国内85%的手游

    2022年8月10日
  • js三目运算符使用及嵌套

    js三目运算符使用及嵌套三目运算符基础格式:条件?a:b;下面根据一个实例来解释用法 vara=10;varb=5;varc=a>b?a:b;//定义一个c,如果a>b,那么取冒号前面的值(这里为a),如果a<=b,那么取冒号后面的值(这里为b)console.log(c);作用:三目运算符可…

    2022年6月17日
  • 硬件加密芯片的使用及适配(CC020加密芯片)

    硬件加密芯片的使用及适配(CC020加密芯片)加密芯片之路,折腾了我不少时间,下面分享一下”CC020加密芯片”的使用及适配:寻找加密芯片左右对比寻找了很久,因为该款加密芯片相对市面来说比较便宜(特别是后期起量后,价格更实惠),有基础加密算法密钥和明文处理安全性相对可行,供应商会提供I2C实现驱动易于开发,还可以基于原有算法进行定制,所以选用;我的加密芯片使用在海思视频芯片”hi35xx”(基于LinuxC系统开发),用于硬件加密防抄板防激活成功教程;一,加密芯片使用项目情况:1)供电电压:3.3V2)协议传输方式:I2C串口..

    2022年6月25日
  • 怎么查看linux系统内核版本_linux服务器版本

    怎么查看linux系统内核版本_linux服务器版本linux下如何查看系统和内核版本(2011-04-1117:35:16)标签:linuxversion杂谈1.查看内核版本命令:1)[root@q1test01~]#cat/proc/versionLinuxversion2.6.9-22.ELsmp(bhcompile@crowe.devel.redhat.com)(gccversion3.4.420050721(Re…

    2022年10月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号