json模块 ---- dumps、loads、dump、load

序列化:json.dumps         将python对象编码成json字符串

反序列化:json.loads       将已编码的json字符串解码成python对象

json.dump()  直接把python数据类型转化为json字符串 写入json文件

json.load() 直接把json文件读出来,转化为python数据类型

json.dump = json.dumps() + f.write()   

json.load = f.read() + json.loads()      

为甚么直接load 空json文件会报错?    json.load = f.read() + json.loads()        相当于json.loads('')   

1.json.dumps()      将python对象编码成json字符串              

list1 = ['张全蛋', '李小花']
json_str = json.dumps(list1, ensure_ascii=False)
print(json_str)
print(type(json_str))

>>> ["张全蛋", "李小花"]
>>> <class 'str'>

2. json.loads()   将已编码的json字符串解码成python对象

python_data = json.loads(json_str)
print(python_data)
print(type(python_data))  # list

>>> ['张全蛋', '李小花']
>>>  <class 'list'>

 3. json.dump()   json.load() 原理

   json.dump = json.dumps() + f.write()      先将python数据类型转为json格式字符串,然后将json字符串写入json文件    

# json.dumps()   
dic = {'name': 'tank','age': 17} # 将ensure_ascii默认的ascii取消设置为False,可以在控制台看到中文,否则看到的是bytes类型数据 json_str = json.dumps(dic, ensure_ascii=False) #注意: 保存json数据时,用.json作为文件的后缀名 with open('user.json', 'w', encoding='utf-8') as f: f.write(json_str)

json.load = f.read() + json.loads()           先将json格式字符串读出来,然后将json格式字符串转化为python数据类型

# json.dumps()   
dic = {'name': 'tank','age': 17}
#类型数据
with open('user.json', 'r', encoding='utf-8') as f:
       json_str=f.read()
str = json.loads(s)

json.dump()   json.load()

# user_dic = {
#     'username': 'tank',
#     'password': 123
# }
# f = open('user2.json', 'w', encoding='utf-8')
# json.dump(user_dic, f,ensure_ascii=False)
# f.close()
#
# with open('user3.json', 'w', encoding='utf-8') as f:
#     json.dump(user_dic, f)

# with open('user3.json', 'r', encoding='utf-8') as f:
#     user_dic = json.load(f)
#     print(user_dic)
#     print(type(user_dic))
原文地址:https://www.cnblogs.com/bigbox/p/11883163.html