Python中的dump()和load()以及dumps()和loads()

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python中的dump()和load()以及dumps()和loads()
本⾝不知道深⼊,就只能浮于表⾯,与君共勉之
先把结论写在前⾯
1.不加s的标识对json⽂件的读写,将内存中值读取写⼊到json后缀⽂件,或者将json后缀⽂件中内容读取到内存
2.加了s的主要是字符串类型和其他数据类型的互转
JSON(JavaScript Object Notation) 是⼀种轻量级的数据交换格式。

Python与JSON数据类型对应表:
1、json.dumps()和json.loads()是json格式处理Python的两种数据类型之间的互转
(1)json.dumps()函数是将数据类型字典/列表转化为数据类型字符串
(2)json.loads()函数是将数据转换字符串转为数据类型字典/列表或其他的格式
2. json.dump()和json.load()是读取json格式⽂件内容或者将内容写⼊json格式⽂件中
(1)json.dump() 将内存中的值传⼊到指定json⽂件中
(2)json.load() 读取json⽂件中内容到内存
import json
string = '{"name":"test", "type":{"name":"seq", "parameter":["1", "2"]}}'
string2 = 'abcdefg'
list01 = [2, 1, 3, 4, 5]
dit01 = {"name": "test", "type": {"name": "seq", "parameter": ["1", "2"]}}
print(string)
print(type(string))
print(list01)
print(type(list01))
print(dit01)
print(type(dit01))
# <class 'str'>
# [2, 1, 3, 4, 5]
# <class 'list'>
# {'name': 'test', 'type': {'name': 'seq', 'parameter': ['1', '2']}}
# <class 'dict'>
# {'name': 'test', 'type': {'name': 'seq', 'parameter': ['1', '2']}}
# <class 'dict'>
# json.loads是将字符串类型转换为dict类型
s = json.loads(string)
print(s)
print(type(s))
# ⾮键值对的字符串不⽀持转换为对应的dict类型
# s2 = json.loads(string2)
# print(s2)
# print(type(s2))
# TypeError: the JSON object must be str, bytes or bytearray, not list
# s1 = json.loads(list)
# print(s1)
# print(type(s1))
string02 = json.dumps(s)
print(string02)
print(type(string02))
print(s.keys())
print(s["name"])
print(s["type"]["name"])
print(s["type"]["parameter"][1])
# None是值,Nonetype是类型。

同理,数字1是值,int是类型。

注意:在python中是没有Null的,取⽽代之的是None
a = None
print(type(a))
b = 1
print(type(b))
a = '[abc]'
print(a[0])
##TypeError: string indices must be integers
abc = '[abc]'
# print(abc['0'])
# -*- coding: utf-8 -*-
import json
dict01 = {
'seatPlanDistributionList': '[{"stdSeatPlanId": "5fc091e05f45b902499ee72c", "stdSeatPlanName": "400 元", "originalPrice": 400.0, "enabled": false, "salesQuantityLimit": "", "soldStocks": 0, "commissionRate": 0}, {"stdSeatPlanId": "5fc091e05f4 'stockOrderType': ['PAPER_TICKET', 'E_TICKET'], 'enterVenueType': ['PAPER', 'ETICKET'], 'stockOrderAuth': [],
'workTicketType': [], 'realNameCloseAuth': 'FALSE', 'distributionAuth': 'FALSE',
'distributionId': '5f71ae3757d98e735a697669', 'merchantId': '5ecb71f490ee5b6848ae2454'}
dict02 = {'name': 'wjp', 'age': '22'}
data_list = [8, '22', 1, 22, '星⾠']
print(type(dict01))
print(type(dict02))
# dict转str 使⽤json.dumps的⽅法,可以将json对象转化为字符串
j_dict01 = json.dumps(dict01)
print(type(j_dict01))
# 列表转str 使⽤json.dumps的⽅法,可以将json对象转化为字符串
j_list = json.dumps(data_list, ensure_ascii=False)
print(type(j_list))
print(j_list)
print("++++换⾏+++")
print("++++indent参数为缩进的空格数+++")
print(json.dumps(dict02, sort_keys=True, indent=4, ensure_ascii=False))
print("++++现在结束+++")
data_dict = '{"name": "YYY","year": 10000,"height": 170,"home": "四川"}'
data_list = '[8, "22", 1, 22, "星⾠"]'
p_dict = json.loads(data_dict)
p_list = json.loads(data_list)
print(type(data_dict))
print(type(data_list))
print(type(p_dict))
print(type(p_list))
filename = 'file03.json'
data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 1000)
with open(filename, 'w') as f:
json.dump(data, f)
filename = 'file03.json'
with open(filename) as f:
data = json.load(f)
print(data)
# 总结:json模块的load()、dump()⽤于编码和解码JSON数据,处理⽂件。

转换包含所有合法数据类型的Python对象、JSON数据类型!。

相关文档
最新文档