json.load() 从文件流中读取json格式的字符串,转化为python对象,文件格式为XXX.json
json.loads() 将json格式的字符串转换为python对象
json.dump() 将python中符合json格式的对象写到文件中
json.dumps() 将python中符合json格式的对象转换为字符串类型,并不常用
例:有两个文件分别为'test.json','test.txt'。内容相同。因为文件的格式不同,故读取方法不同。
1 # 文件内容 2 # [{"1":"s","2":"p","3":"o"}, 3 # {"s":"1","p":"2","o":"3"}] 4 import json 5 # 读取json格式文件 6 with open('./test.json') as f1: 7 data1 = json.load(f1) 8 print(data1) 9 10 # 读取txt格式文件 11 with open('./test.txt') as f2: 12 ret = '' 13 for it in f2.readlines(): 14 ret = ret + it.strip() 15 data2 = json.loads(ret) 16 print(data2)
在保存时使用json.dump(),例:
1 import json 2 a_str = '[{"1":"s","2":"p","3":"o"},{"s":"1","p":"2","o":"3"}]' 3 a_list = [{"1": "s", "2": "p", "3": "o"}, {"s": "1", "p": "2", "o": "3"}] 4 with open('./test1.json', 'w') as f1: 5 json.dump(a_str, f1) 6 with open('./test2.json', 'w') as f2: 7 json.dump(a_list, f2) 8 9 # text1.json 10 # "[{"1":"s","2":"p","3":"o"},{"s":"1","p":"2","o":"3"}]" 11 # test2.json 12 # [{"1": "s", "2": "p", "3": "o"}, {"s": "1", "p": "2", "o": "3"}]
总结:
使用python中的eval可以将字符串识别成python的对象(也有计算数学结果的作用),有时会非常省事。