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)
上一篇 2022年8月31日 上午6:16
下一篇 2022年8月31日 上午6:16


相关推荐

  • Linux文件属性的777权限

    Linux文件属性的777权限一 文件属性概述 Linux 系统是一种典型的多用户系统 不同的用户处于不同的地位 拥有不同的权限 为了保护系统的安全性 Linux 系统对不同的用户访问同一文件 包括目录文件 的权限做了不同的规定 在 Linux 中我们可以使用 ll 或者 ls l 命令来显示一个文件的属性以及文件所属的用户和组 1 从左到右的 10 个字符表示 如图 7 1 所示如果没有权限 就会出现减号 而已 从左至右用 0 9 这些数字来表示 1 0 首位表示类型在 Linux 中第一个字符代表这个文件是目录 文件或链接文件等等

    2026年3月26日
    2
  • OpenClaw 进阶实战:如何优化数据简报生成速度与图表展示效果?

    OpenClaw 进阶实战:如何优化数据简报生成速度与图表展示效果?

    2026年3月13日
    1
  • 实现watch命令

    实现watch命令

    2021年8月28日
    51
  • Jboss 安全和优化

    Jboss 安全和优化

    2022年2月21日
    45
  • 大数据平台的元数据管理

    大数据平台的元数据管理【概念解释】1,大数据平台——是指服务于大数据计算或存储的平台,包括大数据的计算集群(hive、spark、flink、storm等等)和存储集群(如hadoop、hbase等等)。2,大数据平台涉及的元数据——由大数据作业的业务逻辑直接读写处理的业务数据,都不是元数据,除此之外的数据都是元数据。例如数据表的schema信息、任务之间的血缘关系、任务的权限映射关系、数据的业务属性、数据占用的磁…

    2022年5月8日
    59
  • openssl 创建 pfx 证书

    openssl 创建 pfx 证书环境:centos7.6,openssl1.02k-fips生成私钥[root@ansible002keyfile]#opensslgenrsa-outserver.key1024GeneratingRSAprivatekey,1024bitlongmodulus……++++++…++++++eis65537(0x10001)生成证书请求文件,需要填写信息,例如:cn/gd/zh/sourcecode/bdc/www.a.com[root@

    2022年5月2日
    48

发表回复

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

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