标准库系列:json

什么是 json

  • JavaScript 对象表示法 (JavaScript Object Notatiion)
  • 轻量级的文本数据交换格式
  • JSON 独立性语言
  • JSON 具有自我描述性,更容易理解
  • JSON 比XML更小,更快,更易解析

JSON长什么样?

{"firstname":"John","lastname":"Doe"}
{
    "employees":[
        {"firstName":"John1","lastName":"Doe1"},
        {"firstName":"John2","lastName":"Doe2"}
    ]
}

访问方式:employees[0].lastname

Python中json标准库的作用

  1. 使用json字符串生成python对象(load)
  2. 由python对象格式化生成json字符串(dump)

数据类型转换

Python JSON Python
dict object dict
list,tuple array list
str string str
int, float, int -& float-devived Enums number int, float
True, False, None true, false, null True, False, None

注:
list转array

np.array(a)

array 转list

a.tolist()

Usage

方法 功能
json.dump(obj,fp) 将python数据类型转换并保存到json格式的文件内
json.dumps(obj) 将python数据类型转换为json格式的字符串
json.load(fp) 从json合适的文件中读取数据并转换为python的类型
json.loads(s) 将json格式的字符转换为python的类型
#规范的文件读写方式:
try:
    f = open("data\init.json","r")
    print(f.read())
finally:
    if f:
        f.close()
#简化版
with open("data\init.json","w") as f:
    print(f.read())
'''dump'''
import json
#person是<class 'dict'>, 打印出来是单引号!!!True
person = {"name":"Sniper","age":30,"tel":["1234567","2345678"],"isonly":True}
#jsonStr是<class 'str'>, 打印出来是双引号!!!true
jsonStr = json.dumps(person)
jsonStr = json.dumps(person, indent=4,sort_key=True)
#indent能够改善缩进形式!
#sort_key能够对key进行排序
with open('data.json','w') as f:
    json.dump(person, open())
'''load'''
s = '{"name":"Sniper","age":30,"tel":["1234567","2345678"],"isonly":true}'
pythonOjb = json.loads(s)
'''load from files'''
pythonOjb = json.load(open('emplyees.json','r'))
posted @ 2021-05-24 16:15  小康要好好学习  阅读(104)  评论(0编辑  收藏  举报