内置函数、json文本、pickle二进制

内置函数 built-in-function

  1. 进制
python 复制代码
print(bin(4)) #二进制转换 0b100
print(hex(10)) #16进制 0xa
print(oct(11))#8进制0o13
  1. 字符串和字符串数组化
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)
  1. ascii码转换
python 复制代码
print(chr(97)) #把number转换为acsii码--结果为a
print(ord('a'))#把acsii码转换为number--结果为97
  1. 过滤
python 复制代码
c=filter(lambda n:n>5,range(10)) #过滤,只取大于5的数据
print(c)

json

  1. 需要导入json包,针对文本的读取写入。如
  2. json 中文 ensure_ascii=False;
  3. json 的 key 必须是字符串,非字符串会转换
  4. 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

  1. 区别
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对象,如类实例、集合、元组
  1. 代码样式
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)
相关推荐
殷色玫瑰1 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
李游Leo1 小时前
HarmonyOS 7 + Spatial Recon Kit-C++:3DGS 高斯参数的非有限值隔离与可渲染性门禁【鸿蒙心迹】
开发语言·c++·3d·harmonyos
计算机毕业编程指导师1 小时前
Python大数据毕设:基于Hadoop的病毒式社交媒体趋势和参与度分析系统怎么做 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·毕业设计·课程设计·社交媒体
计算机毕业编程指导师1 小时前
【计算机毕设选题推荐】基于Spark与Hadoop的AI就业收入区域差异分析系统 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·python·数据分析·spark·毕业设计·课程设计·ai就业收入
小猴子爱上树1 小时前
跨马翻译:批量图片翻译与视频字幕、智能抠图一站式在线图片翻译工具
大数据·人工智能·python·音视频
时间的拾荒人2 小时前
Qt 文件操作详解:从基础类到读写实战
开发语言·qt·面试
Wang's Blog2 小时前
Java 项目实战: 外卖平台优化-YApi接口管理平台与文档导入导出
java·开发语言·yapi
lzqrzpt2 小时前
临沂LED驱动电源工程选型标准与工艺对比解析
python·单片机·嵌入式硬件·物联网