JSON函数
使用 JSON 函数需要导入 json 库:import json。
举例说明,如下:
a.json内容格式:
{"car":{"price":1100,"color":"red"},"mac":{"price":7999,"color":"black"},"abc":{"price":122,"color":"green"}}
json.load()
import?json with?open('a.json')?as?fp: ????shop_dic?=?json.load(fp)??#从a.json文件内读取数据,返回结果为字典:{'abc':?{'price':?122,?'color':?'green'}, ?????'mac':?{'price':?7999,?'color':?'black'},?'car':?{'price':?1100,?'color':?'red'}} ????print(shop_dic)
json.loads()
s_json?=?'{"name":"niuniu","age":20,"status":true}' print(json.loads(s_json))?????????#将json串转换为字典:{'age':?20,?'status':?True,?'name':?'niuniu'}
json.dump()
import?json with?open('a.json',?'a+')?as?fp: ????dic?=?{'name':?'niuniu',?'age':?18} ????fp.seek(0) ????fp.truncate() ????json.dump(dic,?fp)????#将字典转换为json串写入文件
写入的a.json如下:
{"age":?18,?"name":?"niuniu"} json.dumps() import?json dic?=?{'name':?'niuniu',?'age':?18} print(json.dumps(dic))???????????#将字典转换为json串:{"name":?"niuniu",?"age"
扩展小知识点:
将字典内容写入json文件,包含中文。
1. 中文写入json文件后显示乱码,怎么解决?? ? ? ? ? ? ? ? ? ? ? ensure_ascii = False
2. 写入的字典内容显示为不一行,显示不美观,怎么解决? indent = 4
import?json d?=?{"Name":?"战神","sex"?:?["男","女","人妖"],"Education":{"GradeSchool"?:?"第一小学", "MiddleSchool"?:?["第一初中"?,?"第一高中"],?"University"?:{?"Name"?:?"哈佛大学",?"Specialty"?:?["一年级","二年级"]}}} with?open('a.json',?'w',?encoding='utf-8')?as?f: ????#?中文显示乱码问题,?ensure_ascii?=?False ????#?json格式化问题,?indent?=?8 ????#?s?=?json.dumps(d,?ensure_ascii=False,?indent=8)??字典转换为json?字符串 ????#?f.write(s) ???? ????#第二种写法 ????json.dump(d,?f,?ensure_ascii=False,indent=8)
写入的json文件,a.json: