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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql官网下载详细教程图文

    mysql官网下载详细教程图文2019年的mysql官网下载教程■打开地址https://www.mysql.com/downloads/点击打开■进入首页点击MySQLCommunity(GPL)Downloads»■再点击MySQLCommunityServer这里选择的是linux版本。如果是Windows或者其他版本请另请选择即可■点击下载后…

    2022年5月1日
    54
  • 结构体数组初始化

    结构体数组初始化《代码大全》建议在变量定义的时候进行初始化,但是很多人,特别是新人对结构体或者结构体数组定义是一般不会初始化,或者不知道怎么初始化。1、初始化typedefstruct_TEST_T{       inti;       charc[10];}TEST_T;TEST_T gst  ={1,“12345”};//可以初始化,设置i为1

    2022年7月18日
    15
  • python二级考试报名_python语言程序设计二级考试真题

    python二级考试报名_python语言程序设计二级考试真题请注意看红色标识文字,图片均是超清图片,可以单击查看看见更大的世界,遇见更好的自己Seeabetterworldtomeetbetterforourselves.1.MMdnn—-MMdnn是一个深度学习的模型工具集,它能够互转模型文件、可视化模型结构、自动产生训练/推演的代码、辅助测试模型兼容性等。2.Matplotlib—-Matplotlib是一个高质…

    2025年9月17日
    5
  • 【Redis】Redis4.0、5.0、6.0版本特性整理「建议收藏」

    【Redis】Redis4.0、5.0、6.0版本特性整理「建议收藏」文章目录Redis版本特性Redis4模块系统PSYNC2.0缓存驱逐策略优化LazyFree交换数据库混合持久化内存命令兼容NAT和DockerActiveDefrag其他Redis5Stream类型新的Redis模块API集群管理器更改Lua改进RDB格式变化动态HZZPOPMIN&ZPOPMAX命令CLIENT新增命令其他Redis6多线程IOSSL支持ACL支持RESP3客户端缓存集群代理Disquemodule其他Redis版本特性Redis4模块系统​ R

    2025年5月26日
    3
  • android之Can’t create handler inside thread that has not called Looper.prepare()

    好久没遇到这种错误,最初都是因为在新开的线程中更新UI才出错,后来一直没忘记用handler,也就没用错误,今天有出现如下错误,代码如下:send.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-genera

    2022年3月11日
    47
  • 移动app开发流程,app开发步骤

    移动app开发流程,app开发步骤个人github:https://github.com/qiilee 欢迎follow移动app开发流程,app开发步骤app是手机软件的简称。手机主流的有ios、andriod,windows平台。市场上程序做得比较多的也是前两款的平台。随着移动互联网的普及,移动终端功能的日益完善,很多企业看重移动互联网的重要,开始在这个领域完善自己的品牌,开展营销活动。一款好的app需要哪些…

    2022年6月9日
    46

发表回复

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

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