JSON是一种独立于语言的文本格式,用于数据交换,可以在不同语言间交换数据。
在高级版本的Python里自带json模块包,使用import json直接导入模块。
JSON文本以“键/值”对形式定义,Python里的json模块主要用于“Python数据与JSON格式的数据间相互转换”。
JSON的数据类型:
数字(整数或浮点数),字符串(“ ”),逻辑值(True/False),数组([ ]),对象({ }),null。
json模块里常用的四个方法是dump,dumps,load,loads。详细的方法使用细节参考Python自带帮助文件help(json.dump)。
Encode编码为json对象:
json.dumps
Pyhton的Json模块提供了把内存中的对象序列化的方法。
dump的功能就是把Python对象encode为json对象,一个编码过程。 注意json模块提供了json.dumps和json.dump方法,区别是dump直接到文件,而dumps到一个字符串,这里的s可以理解为string。
1
2
3
4
5
6
|
#dumps方法 import json data = [{ 'a' : 'A' , 'b' :( 2 , 4 ), 'c' : 3.0 }] print ( 'DATA:' , repr (data), type (data)) data_string = json.dumps(data) print ( 'JSON:' , data_string, type (data_string)) |
json.dump
不仅可以把Python对象编码为string,还可以写入文件。
但是不能把Python对象直接写入文件,这样会报错TypeError: expected a string or other character buffer object,需要将其序列化之后才可以写入文件。
1
2
3
4
5
|
#dump方法 import json data = [ { 'a' : 'A' , 'b' :( 2 , 4 ), 'c' : 3.0 } ] with open ( 'output.json' , 'w' ) as fp: json.dump(data,fp) |
Decode解码为Python对象:
json.loads
以上给出了Python内置对象dump为json对象的操作,反过来,那如何从json对象decode解码为Python可以识别的对象呢?
用loads方法,当然这个是基于string的;如果是文件,可以用json.load方法。
1
2
3
|
#loads方法 decoded_json = json.loads(data_string) print ( type (decoded_json),decoded_json) |
json.load
1
2
3
4
5
6
|
#load方法 with open ( 'output.json' ) as fp: print ( type (fp)) loaded_json = json.load(fp) print ( type (loaded_json),loaded_json) |
Python里open(‘文件路径',‘读写模式')内建函数,作用是打开文件。
利用with代码块操作,便于管理上下文,当with代码块执行完时,内容会自动关闭并释放文件资源。
知识点补充:
数据类型对照表
python数据 | json数据 |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
单引号(') | 双引号(") |
到此这篇关于python的json包位置及用法总结的文章就介绍到这了,更多相关python的json包用法详解内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.py.cn/faq/python/12646.html