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


相关推荐

  • 网站搭建中,怎么区分ASP和PHP

    网站搭建中,怎么区分ASP和PHP

    2021年9月22日
    44
  • idea下划线怎么去除_word怎么加虚线下划线

    idea下划线怎么去除_word怎么加虚线下划线初次安装使用IDEA,总是能看到导入代码后,出现很多的波浪线,下划线和虚线,这是IDEA给我们的一些提示和警告,但是有时候我们并不需要,反而会让人看着很不爽,这里简单记录一下自己的调整方法,供其他的小伙伴在使用的时候参考。主要有:代码中大量的波浪线,参数和变量下划线,Typo提示,neverused和注释参数名不匹配提示,以及变量初始化多余时提示,形参名的提示。下面是具体操作步骤,如果按照对应的…

    2022年9月30日
    0
  • Apache Struts2远程代码执行漏洞(CVE-2021-31805)安全通告[通俗易懂]

    Apache Struts2远程代码执行漏洞(CVE-2021-31805)安全通告[通俗易懂]1.事件描述监测发现,开源应用框架ApacheStruts存在远程代码执行漏洞(CVE-2021-31805),攻击者可构造恶意的OGNL表达式触发漏洞,实现远程代码执行。受影响版本为ApacheStruts2.0.0~2.5.29。目前,该漏洞已在ApacheStruts2.5.30版本中修复。事件类型:漏洞利用事件等级:高危2.影响范围远程代码执行漏洞影响范围:2.0.0<=ApacheStruts<=2.5.29不受影响版本ApacheStruts

    2022年7月13日
    19
  • HDFS命令_hadoop集群命令

    HDFS命令_hadoop集群命令hdfs常用命令:第一部分:hdfs文件系统命令第一类:文件路径增删改查系列:hdfsdfs-mkdirdir创建文件夹hdfsdfs-rmrdir删除文件夹dirhdfsdfs-ls查看目录文件信息hdfsdfs-lsr递归查看文件目录信息hdfsdfs-statpath返回指定路径的信息第二类:空间大小查看系列命令:hdfsdfs-du-hdir按照适合阅读的形式人性化显示文件大小hdfsdfs-dusuri递归显示目标

    2022年10月5日
    0
  • python激活成功教程qq密码_央·python编程之QQ数据清洗

    python激活成功教程qq密码_央·python编程之QQ数据清洗一般我们从网上下下来的数据都很杂乱的,什么样的情况都有,不利于我们整理,所以在拿到数据的时候我们会先做一遍数据清理,把垃圾数据清理掉。今天我们拿QQ数据做示范。我们命令行是怎么看数据![Asm]纯文本查看复制代码morezy.txt#然后空格进行翻页效果如图:1.png(11.5KB,下载次数:0)2018-1-3017:54上传从数据中得知:—-中间4个-左边是账号,右边…

    2022年7月20日
    18
  • string转map_中将转业可以任省长吗

    string转map_中将转业可以任省长吗暴力的直接Map对象toString()存,后面取出是就是用再转换为MapString转Map:JSONObjectjsonobject=JSONObject.fromObject(str);rMap=(Map<String,Object>)jsonobject;但很多时候并不能直接将Map对象的toString()而是应该转换为JsonObject后再调用toString()后存入就正常了Map<String,Object>map=newHashMa

    2022年9月3日
    3

发表回复

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

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