Python基础之JSON标准库

目录

1、JSON基础概述

2、JSON格式

3、注意事项

4、json格式总结

5、JSON模块

5.1 作用

5.2 数据类型转换

2.3 使用方法

2.4 json.dumps()

 2.5 json.dump()

2.6  json.loads()

2.7 json.load()

3、解析json文件


1、JSON基础概述

JSON独立于语言

JSON具有自我描述性,更易理解

JSON比XML更小、更快、更易解析

2、JSON格式

{
  "student": 
          [
            {"name": "小明", "age": 12},
            {"name": "小红", "age": 18}
          ],
  "classroom": {"class1": "room1", "class2": "room2"}
}

3、注意事项

1.json的键值对的键部分,必须使用双引号

2.json的键值对的值部分,不允许出现函数function,undefined,NaN,但是可以有null

3.json数据结束后,不允许出现没有意义的逗号

4、json格式总结

{"name": "admin", "age": 18}  # JSON对象


# JSON数组
{
  "student":
          [
            {"name": "小明", "age": 12},
            {"name": "小红", "age": 18}
          ],
}


5、JSON模块

5.1 作用

1. 使用json字符串生成python对象(load)

2. 使用python对象格式化称为json字符串(dump)

5.2 数据类型转换

将python转换到json格式,在数据类型上会有变化

dict--object

list,tuple--array

str--string

int,float--number

True--true

False--false

None--null

2.3 使用方法

json.dumps(obj)  # 将python数据类型转换为json格式的字符串

json.dump(obj,fp)  # 将python数据类型字符串转换并保存到json格式的文件内

json.loads(s)  # 将json格式的字符串转换为python的类型

json.load(fp)  # 将json格式的文件读取数据并转换为python的类型

2.4 json.dumps()

json格式和python格式区别在于,python格式打印输出是单引号,类型为dict,json格式打印输出为双引号,类型为str。True的开头大小写有区别。

import json

person = {"name": "小明", "age": 18, "tel": ["888888", "13555555555"], "isonly": True}
print(person)
print(type(person))
print(json.dumps(person))
print(type(json.dumps(person)))

使用参数能够哦让json字符串格式化输出

参数解读:

sort_keys  # 是否排序

indert  # 定义缩进距离

separators  # 是一个元组,定义分隔符类型

skipkeys  # 是否允许json字符串编码字典对象时,字典的key不是字符串类型(默认不允许)

print(json.dumps(person, sort_keys=True, indent=4, separators=(',', ':')))
import json

person = {"name": "小明", "age": 18, "tel": ["888888", "13555555555"], "isonly": True}
print(person)
print(type(person))
print(json.dumps(person, sort_keys=True, indent=4, separators=(',', ':')))
print(type(json.dumps(person)))


json_str = json.dumps(person)

with open('test.json', 'w', encoding='utf-8') as f:
    f.write(json_str)

 2.5 json.dump()

将python数据类型转换并保存到json格式文件


person = {"name": "小明", "age": 18, "tel": ["888888", "13555555555"], "isonly": True}
json.dump(person, open('data.json', 'w'), sort_keys=True, indent=4, separators=(',', ':'))

 json.dumps()和json.dump写入文件区别

dump()不需要使用.write()方法,只需要写哪个字典,哪个文件即可,而dumps()需要使用.writer()方法写入

如果把字典写到文件里面的时候,dump()好用,但是如果不需要操作文件,或是把内容存储到数据库或excel中,则需要使用dumps()先把字段转化问字符串,再写入。

2.6  json.loads()

将json格式的字符串转换为python的类型

json_str = json.dumps(person, sort_keys=True, indent=4, separators=(',', ':'))
python_dict = json.loads(json_str)
print(python_dict)
print(type(python_dict))
print(python_dict.keys())
print(python_dict.values())

文件操作

f = open('data.json', 'r', encoding='utf-8')
content = f.read()
python_dict = json.loads(content)
print(python_dict)

2.7 json.load()

从json格式的文件中读取数据并转换为python的类型


python_dict = json.load(open('data.json', 'r'))
print(python_dict)
print(type(python_dict))

json.loads和json.load区别:

loads()穿的是json字符串,而load()传的是文件对象

使用loads()时需要先读取文件再使用,而load()不用

3、解析json文件

python_dict = json.load(open('data.json', 'r'))
print(python_dict)
print(type(python_dict))

print(python_dict.keys())
print(python_dict.values())
print(python_dict['age'])

猜你喜欢

转载自blog.csdn.net/xiao__dashen/article/details/125398025