Python编程:json模块和pickle模块

简介: Python编程:json模块和pickle模块

普通文件读写

# 文件写入
info = {
    "name": "Tom",
    "age": 23
}
f = open("info.txt", "w")
f.write(str(info))  # {'name': 'Tom', 'age': 23}
f.close()
# 文件读取
f = open("info.txt", "r")
data = eval(f.read())
f.close()
print(type(data), data)
# <class 'dict'> {'name': 'Tom', 'age': 23}

通过json

import json
# 序列化,只能一次
f = open("info2.txt", "w")
json.dump(info, f)  #相当于 f.write(json.dumps(info))
# {"name": "Tom", "age": 23}
f.close()
# 反序列化,只能一次
f = open("info2.txt", "r")
data = json.load(f)  #相当于: data = json.loads(f.read())
f.close()
print(type(data), data)
# <class 'dict'> {'name': 'Tom', 'age': 23}

如果需要有乱码或者需要美观缩进对齐,可以使用如下方式进行格式化输出:


with open("result.txt", "w") as f:
    txt = json.dumps(lst, ensure_ascii=False, indent=4)
    f.write(txt)

参考: python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出


通过pickle

try:
    import cPickle as pickle # c语言,读写更快
except ImportError:
    import pickle
# 写入
def sayHi():
    print("Hello world!")
info = {
    "name": "Tom",
    "age": 23,
    "func": sayHi
}
f = open("info3.txt", "wb")
f.write(pickle.dumps(info))  # 等价于:pickle.dump(info, f)
f.close()
"""
�}q (X   funcqc__main__
sayHi
qX   ageqKX   nameqX   Tomqu.
"""
# 读取
f = open("info3.txt", "rb")
data = pickle.loads(f.read())  # 等价于:pickle.load(f)
f.close()
print(type(data),data)
# <class 'dict'> {'name': 'Tom', 'func': <function sayHi at 0x0000000002E5CBF8>, 'age': 23}
data["func"]()  # 调用 Hello world!
相关文章
|
4月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
345 102
|
4月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
370 104
|
3月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
305 3
|
3月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
542 3
|
3月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
461 4
|
3月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
352 3
|
3月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
400 0
|
3月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
264 0
|
JSON 数据格式 Python
Python编程:利用JSON模块编程验证用户
Python编程:利用JSON模块编程验证用户
127 1
|
存储 JSON JavaScript
python序列化: json & pickle & shelve 模块
python序列化: json & pickle & shelve 模块

推荐镜像

更多