内置函数、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)
相关推荐
总要学点什么18 分钟前
第106篇:三维特效-流动线效果——让一颗光点沿整条线一路滚到头
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
特立独行的猫A6 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
大可不必了11 小时前
03 函数定义和调用
开发语言·python
I_belong_to_jesus11 小时前
C++关于分支预测的优化1
开发语言·c++·算法
承渊政道12 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛12 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
imgsq12 小时前
GESP Python 一到四级:备考路线与真题特点
python·青少年编程
eggwyw14 小时前
Anaconda安装卸载的详细流程指南
开发语言·python
2601_9679791214 小时前
纯手写:Python安装pip完整教程,搞了几小时,终于成功
python·教程·pip·安装·包管理
Norna14 小时前
缓存文件从没写出来:一个 .json 被当成目录用了
python