Json介绍
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它是JavaScript的子集,易于人阅读和编写。
- json是一种通用的数据类型
- 一般情况下接口返回的数据类型都是json
- 长得像字典,形式也是{key:value}
- 其实json是字符串
- 字符串不能用key、value来取值,所以要先转换为字典才可以
前端和后端进行数据交互,其实就是JS和Python进行数据交互
json中常用的方法
import json
方法 | 描述 |
json.dumps() | 将 Python 对象编码成 JSON 字符串 |
json.loads() | 将已编码的 JSON 字符串解码为 Python 对象 |
json.dump() | 将Python内置类型序列化为json对象后写入文件 |
json.load() | 读取文件中json形式的字符串元素转化为Python类型 |
#json模块的四个方法详细使用
import json
#1 json.dumps() 使用
# 调用dumps声明一下对象 列表 元组 字典 字符串 数值型;dupms表示的是将python中的任意对象转成字符串对象;
get_list_tostr=json.dumps([1,3,43])
print("1",type(get_list_tostr))
get_dict_tostr=json.dumps({"name":"wood","age":10})
print("1",type(get_dict_tostr))
print("1",type(json.dumps(1)))
print("1",json.dumps("wood")) #相当于('"wood"')
print("1","wood")
#2 json.loads()使用
import json
#loads:与dumps相对应的;会将字符串中的字符内容自动转换成与之字符定义相对应的python对象
str2="[1,3,34,45]"
str3="{'name':'wood'}"
get_str_tolist=json.loads(str2)
print("2该值的类型是:",type(get_str_tolist))
#3 json.dump()使用
import json
#dump:将下面dict1字典写入到json格式文件中去;dump必须与文件流对象同时使用,所以一般是将当前的python对象写入到json格式文件中,并可以设定一定的格式
dict1={"name":"wood","age":10,"sex":"男"}
with open("json_test.json","w") as fp:
#fp.write(json.dumps(dict1)) 表示的是将dict1以字符串的形式写入到json_test.json格式文件中
json.dump(dict1,fp,indent="\t",ensure_ascii=False) #现在已经以json格式写进去,具有一个参数indent可以很好的显式json的格式,该参数即可以传入int类型也可以是str类型
#4 json.load()使用
#load方法:与dump与之对应
with open("json_test.json") as fp:
#print(fp.tell())
print("4",type(fp.read())) #流一旦被使用则其指针会指向文件的末尾,那么此时流则无任何内容;
#可以将流的指针进行设定偏移
fp.seek(0) #表示的是重新将流的指针设定偏移到最开始位置
print("4",type(json.load(fp))) #load获取的数据是字典类型而非字符串;
# print(fp.tell()) #可以获取当前流指针的位置;
总结:不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的。
python数据类型与json数据类型的映射关系
python | json |
str, unicode | string |
dict | object |
list, tuple | array |
int, long, float | number |
False | false |
True | true |
None | null |