python读写json、格式化写⼊json⽂件
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字符串 字符串
1import json
2
3 test_dict ={'one':1,'two':{2.1:['a','b']}
4print(test_dict)
5print(type(test_dict))
6#dumps 将数据转换成字符串
7 json_str = json.dumps(test_dict)
8print(json_str)
9print(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)
11print(new_dict)
12print(type(new_dict))
输出:
{'one':1,'two':{2.1:['a','b']}
<class'dict'>
案例3 dump
:将python dict数据写⼊json⽂件中
1with open("../config/record.json","w")as f:
2    json.dump(new_dict,f)
3print("加载⼊⽂件完成...")
json⽂件内容:
1{"one":1,"two":{2.1:["a","b"]}
案例4 load
把⽂件打开,并把JSON字符串变换为python dict数据类型
1with open("../config/record.json",'r')as load_f:
2    load_dict = json.load(load_f)
3print(load_dict)
4print(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':{
python怎么读取json文件2.1:[
'a',
'b'
]
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。