内置函数 built-in-function
- 进制
python
print(bin(4)) #二进制转换 0b100
print(hex(10)) #16进制 0xa
print(oct(11))#8进制0o13
- 字符串和字符串数组化
python
a=bytes("abcd",encoding="utf-8")
print(a.capitalize()) #生成一个新的字符串,a还是维持原样,字符串不可以修改
print(a)
b=bytearray('abcde',encoding="utf-8") #字节数组化,可以修改字符串了
print(b[0]) #获取字符串第一个
b[0]=98 #修改字符串
print(b)
- ascii码转换
python
print(chr(97)) #把number转换为acsii码--结果为a
print(ord('a'))#把acsii码转换为number--结果为97
- 过滤
python
c=filter(lambda n:n>5,range(10)) #过滤,只取大于5的数据
print(c)
json
- 需要导入json包,针对文本的读取写入。如
- json 中文 ensure_ascii=False;
- json 的 key 必须是字符串,非字符串会转换
- json 不支持 datetime、set、bytes、自定义对象,需要转换
python
import json
data = {
"name": "张三",
"age": 25,
"tags": ["python", "json"],
"active": True,
"score": None
}
# 对象 -> 字符串
s = json.dumps(data, ensure_ascii=False, indent=2)
print(s) #读取json数据,打印出来
# 字符串 -> 对象
obj = json.loads(s) #将json数据存放到obj对象中
print(obj["name"]) #通过对象obj获取name值
# 写入文件:文本模式,utf-8
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2) #ensure_ascii=False中文正常显示,不转成 \uXXXX
# 从文件读取
with open("data.json", "r", encoding="utf-8") as f:
data2 = json.load(f)
print(data2)
写入的json文件

pickle
- 区别
python
1、、使用方式
json.dumps(obj) -> str
json.loads(s) -> obj
json.dump(obj, f) 写文件
json.load(f) 读文件
pickle.dumps(obj) -> bytes
pickle.loads(b) -> obj
pickle.dump(obj, f) 写二进制文件
pickle.load(f) 读二进制文件
读写文件方式不一样
json:w、r
pickle:wb rb
3、使用场景
json:通用
pickle是Python专用
4、格式
json:文本格式
pickle:二进制格式
5、存储内容格式
json支持:dict、list、str、int、float、bool、None
pickle能存几乎任意Python对象,如类实例、集合、元组
- 代码样式
python
import pickle
class User:
def __init__(self, name, age):
self.name = name
self.age = age
u = User("张三", 25)
# 对象 -> bytes,bytes是二进制协议
b = pickle.dumps(u, protocol=pickle.HIGHEST_PROTOCOL)
print(type(b)) # <class 'bytes'>
# bytes -> 对象
u2 = pickle.loads(b)
print(u2.name, u2.age)
# 写入文件:必须二进制模式 wb
with open("user.pkl", "wb") as f:
pickle.dump(u, f, protocol=pickle.HIGHEST_PROTOCOL)
# 读取文件:必须二进制模式 rb
with open("user.pkl", "rb") as f:
u3 = pickle.load(f)
print(u3.name, u3.age)

