
json模块
JSON (JavaScript Object Notation):是一个轻量级的数据交换格式模块,受javascript对象文本语法启发,但不属于JavaScript的子集。
常用方法:
dump(obj,fp):将对象以字符串的形式写入文件中。
load(fp):将数据从文件中读出,并返回(需要变量接收)数据的原类型。
dumps(obj):将对象转换成json字符串形式。
loads(str):将json字符串数据转换成原来的数据类型。
相关推荐:《Python视频教程》
实例如下:dumps(obj) | loads(str)
1 2 3 4 5 6 | import json
dict_1 = { "电影" : "黄飞鸿" , "电视剧" : "霍元甲" }
json_str = json.dumps(dict_1) # 将字典转换成json的字符串类型
dict_2 = json.loads(json_str) # 将json的字符串类型转换成原数据
print (json_str,type(json_str))
print (dict_2.items(),type(dict_2))
|
打印内容如下
1 2 | { "\u7535\u5f71" : "\u9ec4\u98de\u9e3f" , "\u7535\u89c6\u5267" : "\u970d\u5143\u7532" } < class 'str' >
dict_items([( '电影' , '黄飞鸿' ), ( '电视剧' , '霍元甲' )]) < class 'dict' >
|
实例如下:dump(obj,fp) | load(fp)
1 2 3 4 5 6 | import json
# 向文件中写入json数据
dict_1 = { "电影" : "黄飞鸿" , "电视剧" : "霍元甲" }
file_write = open( "json.txt" ,mode= "w" ,encoding= "utf-8" )
json.dump(dict_1,file_write) # 将字典以json的字符串类型写入文件
file_write.close()
|
从文件中读取json数据
1 2 3 4 | file_read = open( "json.txt" ,mode= "r" ,encoding= "utf-8" )
dict_2 = json.load(file_read) # 将文件中内容转换成原数据类型并返回
file_read.close()
print (dict_2.items(),type(dict_2)) # 打印转换后的数据
|
打印内容如下
1 | dict_items([( '电影' , '黄飞鸿' ), ( '电视剧' , '霍元甲' )]) < class 'dict' >
|
这里需要注意的是json模块dump(obj,fp)虽然可以多次上传,但是在load时会报错,load(fp)函数不能转换多次dump的数据。所以如果想要向json文件中新增数据时,需要将数据load下来转换成原数据,然后在原数据基础上进行新增。最后将处理后的数据dump覆盖写到文件中。