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())  #可以获取当前流指针的位置;

python高阶学习笔记:4 ​python解析json格式文件_python

总结:不管是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