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对象编码成json对象,一个编码过程。请注意,json 模块提供了 json.dumps 和 json.dump 方法。不同之处在于转储直接转到文件,而转储转到字符串。这里的s可以理解为一个字符串。
#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)
Decode解码为Python对象:
json.loads
上面给出了将Python内置对象dump成json对象的操作。反过来,如何从一个json对象解码成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('file path', 'read-write mode')用于打开文件。
使用 with 代码块操作方便上下文管理。当执行with代码块时,内容会自动关闭,文件资源也会被释放。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 什么是 python 截断12/28
- ♥ python help()获取函数信息01/05
- ♥ python中迭代详解12/18
- ♥ 如何在python中找到最小公倍数08/28
- ♥ 2019年python好学吗?01/13
- ♥ 如何在python中绘制函数图像09/07
内容反馈