Python的json模块

JSON是一种独立于语言的文本格式,用于数据交换,可以在不同语言间交换数据。

在高级版本的Python里自带json模块包,使用import json直接导入模块。

JSON文本以“键/值”对形式定义,Python里的json模块主要用于“Python数据与JSON格式的数据间相互转换”。

JSON的数据类型:数字(整数或浮点数),字符串(“  ”),逻辑值(True/False),数组([  ]),对象({  }),null。

json模块里常用的四个方法是dump,dumps,load,loads。详细的方法使用细节参考Python自带帮助文件help(json.dump)。

(1)Encode编码为json对象:

 

json.dumps

Pyhton的Json模块提供了把内存中的对象序列化的方法。

dump的功能就是把Python对象encode为json对象,一个编码过程。 注意json模块提供了json.dumps和json.dump方法,区别是dump直接到文件,而dumps到一个字符串,这里的s可以理解为string。

#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,需要将其序列化之后才可以写入文件。

#dump方法
import json
data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]

with open('output.json','w') as fp:
    json.dump(data,fp)

 

(2)Decode解码为Python对象:

json.loads

 

以上给出了Python内置对象dump为json对象的操作,反过来,那如何从json对象decode解码为Python可以识别的对象呢?

用loads方法,当然这个是基于string的;如果是文件,可以用json.load方法

#loads方法
decoded_json = json.loads(data_string)
print(type(decoded_json),decoded_json)

 

json.load

#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代码块执行完时,内容会自动关闭并释放文件资源。

————————————————————————————

with open(‘文件路径’,‘读写模式’) as file:

文件读写操作

————————————————————————————

 

 

 

 

 


版权声明:本文为cymy001原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。