简介
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写
同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互
网址
官方文档
json — JSON encoder and decoder — Python 3.11.4 documentation
在线解析网站
使用
引入
import json
json.loads()
把Json字符串解码为Python数据【内置四种类型/列表/字典】
str = '123'
print(json.loads(str)) #123
strList = '[1,2,3,4]'
print(json.loads(strList)) # [1, 2, 3, 4]\
strDict = '{"city": "北京", "name": "范爷"}'
print(json.loads(strDict)) # {'city': '北京', 'name': '范爷'}
如果传入的字符串的编码不是UTF-8的话,需要指定字符编码的参数
data_dict = json.loads(jsonStrGBK, encoding="GBK");
如果 dataJsonStr通过encoding指定了合适的编码,但是其中又包含了其他编码的字符,
则需要先去将dataJsonStr转换为Unicode,然后再指定编码格式调用json.loads()
dataJsonStrUni = dataJsonStr.decode("GB2312");
dataDict = json.loads(dataJsonStrUni, encoding="GB2312");
json.dumps()
把python数据【内置四种类型/列表/字典】转化为json字符串
默认使用ascii编码【添加参数 ensure_ascii=False 禁用ascii编码,按utf-8编码】
dictStr = {"city": "北京", "name": "范爷"}
print(json.dumps(dictStr, ensure_ascii=False)) # {"city": "北京", "name": "范爷"}
json.dump()
将Python内置类型序列化为json对象后写入文件
listStr = [{"city": "北京"}, {"name": "范爷"}]
json.dump(listStr, open("listStr.json", "w"), ensure_ascii=False)
dictStr = {"city": "北京", "name": "范爷"}
json.dump(dictStr, open("dictStr.json", "w"), ensure_ascii=False)
json.load()
读取文件中json形式的字符串元素,转化成python类型
strList = json.load(open("listStr.json"))
strDict = json.load(open("dictStr.json"))