json简介
json的全称是JavaScript Object Notation(即JavaScript对象标记),
他是JavaScript的子集。在python中,json是轻量级的文本数据交换格式,
前端和后端进行数据交互,其实就是json和python进行数据交互
json与python语法规则的区别
python json
字典 对象
列表或元组 数组
字符串 字符串
int或floot 数字
True或False true或false
None none
注意:json必须是双引号!
json模块api
接口一:json.dumps(obj) # 把python转换成json格式
接口二:json.loads(s) # 把json转换成python格式
接口三:json.dump
接口四:json.load
json.dumps():
import json date = { 'name':'pywjh', 'age':18 } json_date = json.dumps(date) # 将python字典转化为json字符串 print(json_date) --> {"name": "pywjh", "age": 18}
这里需要注意一点:
python中的列表和元组。在转换成json后,都变成了python中的元组,(换句话说就是json中没有列表形式的格式)
布尔值也会变成小写
没有字典和集合格式
import json date = { 'name':'pywjh', 'list':[1, 2, 4, 5], 'tuple':(2, 4, 6, 8), 'bool':True, } json_date = json.dumps(date) print(json_date) --> {"name": "pywjh", "list": [1, 2, 4, 5], "tuple": [2, 4, 6, 8], "bool": true}
json.loads():
json.loads()并没有识别列表和元组的功能,所以之前的元组和列表,都变成了列表
import json date = { 'name':'pywjh', 'list':[1, 2, 4, 5], 'tuple':(2, 4, 6, 8), 'bool':True, } json_date = json.dumps(date) # python字典转换成json字符串 # 接着之前的代码 python_date = json.loads(json_date) # json字符串转换成python字典 print(python_date)
-->
{'name': 'pywjh', 'list': [1, 2, 4, 5], 'tuple': [2, 4, 6, 8], 'bool': True}
json.dump和json.load主要针对文件操作使用,方法和上下文管理器一样
dump:
import json date = { 'name':'pywjh', 'list':[1, 2, 4, 5], 'tuple':(2, 4, 6, 8), 'bool':True, } with open('json_file.json', 'w') as f: # json_file.json 有则操作,无则自动创建以后再操作 json.dump(date, f)
相同路径下就会多出来一个.json文件
load:
import json with open('json_file.json', 'r') as f: json_date = json.load(f) print(json_date) print(type(json_date)) --> {'name': 'pywjh', 'list': [1, 2, 4, 5], 'tuple': [2, 4, 6, 8], 'bool': True} <class 'dict'>