文件写入、读出的类型

打开类型说明
r读模式(默认模式,可省略),如果文件不存在则抛出异常
w写模式,如果文件已存在,先清空原有内容
x写模式,创建新文件,如果文件已存在则抛出异常
a追加模式,不覆盖文件中原有内容
b二进制模式(可与其他模式组合使用),使用二进制模式打开文件时不允许指定 encoding 参数
t文本模式(默认模式,可省略)
+读、写模式(可与其他模式组合使用)

JSON

一、JSON字符串处理

1. json.dumps : 将Python数据结构转换为JSON

data = {
    'name': 'ACME',
    'shares': 100,
    'price': [542.23, 98.76]
}

json_str = json.dumps(data)  # {"name": "ACME", "shares": 100, "price": [542.23, 98.76]}

2. json.loads : 将一个JSON编码的字符串转换回一个Python数据结构

data = json.loads(json_str)

二、 处理JSON文件 json.dump() 和 json.load()

# Writing JSON data
with open('data.json', 'w') as f:
    json.dump(data, f)

# Reading data back
with open('data.json', 'r') as f:
    data = json.load(f)

JSON编码支持的基本数据类型为 Noneboolintfloatstr , 以及包含这些类型数据的lists,tuples和dictionaries。 对于dictionaries,keys需要是字符串类型(字典中任何非字符串类型的key在编码时会先转换为字符串)。 为了遵循JSON规范,你应该只编码Python的lists和dictionaries。 而且,在web应用程序中,顶层对象被编码为一个字典是一个标准做法。

JSON编码的格式对于Python语法而已几乎是完全一样的,除了一些小的差异之外。 比如,True会被映射为true,False被映射为false,而None会被映射为null。

pickle

1、Python标准库,只支持python的基本数据类型。

2、可以处理复杂的序列化语法,序列化时,只是序列化整个序列对象,而非内存地址。

import pickle

a = {'name':'Tom','age':22}

with open('text.txt','wb') as file:
    pickle.dump(a,file) # write
    
with open('text.txt','rb') as file2:
    b = pickle.load(file2)  # read

hhhhh