前提:如果使用进行json操作,首先应该导入json模块(import json)
备注:json必须是双引号,单引号它就会报错
1、json.dump()
把字典变成json格式且存入文件,传入文件名称即可,方法会自动进行写文件操作
import json filename=open("a.txt","w",encoding="utf-8") dic={"zhaozhao":{"price":"4.33","num":"5"}} json.dump(dic,filename)
文件内容:
{"zhaozhao": {"price": "4.33", "num": "5"}}
把字典变成JSON格式写入文件且保持格式
import json filename=open("a.txt","w",encoding="utf-8") dic={"zhaozhao":{"price":"4.33","num":"5"}} json.dump(dic,filename,ensure_ascii=False,indent=5) #ensure_ascii=False 解决中文乱码 indent每行空格数 文件内容: { "zhaozhao": { "price": "4.33", "num": "5" } }
2、json.dumps()
把字典变成JSON格式,需手动写文件
import json filename=open("a.txt","w",encoding="utf-8") dic={"zhaozhao":{"price":"4.33","num":"5"}} str=json.dumps(dic,ensure_ascii=False,indent=5) filename.write(str) #需手动再进行一次写操作 文件内容: { "zhaozhao": { "price": "4.33", "num": "5" } }
3、json.loads
把JSON格式的字符串转换为字典,且这种转换方式,如果字符串存在文件中,需要自己手动执行读文件到变量中,再进行转换操作
文件内容: { "zhaozhao": { "price": "4.33", "num": "5" } } import json filename=open("a.txt",encoding="utf-8") str=filename.read() #需要手动读一次文件 dic=json.loads(str) #json格式转换为字典 print(dic) 输出: D:studypython estvenvScriptspython.exe D:/study/python/test/dd.py {'zhaozhao': {'price': '4.33', 'num': '5'}}
4、json.load
把JSON格式的字符串转换为字典,且这种转换方式,如果字符串存在文件中,无需手动读文件,传入文件名称,方法可自动遍历文件进行转换
文件内容: { "zhaozhao": { "price": "4.33", "num": "5" } } 代码: import json filename=open("a.txt",encoding="utf-8") dic=json.load(filename) #json格式转换为字典,无需读文件,自动读文件 print(dic) 执行结果: D:studypython estvenvScriptspython.exe D:/study/python/test/dd.py {'zhaozhao': {'price': '4.33', 'num': '5'}}