json pickle shelve

本文介绍了Python中数据序列化的几种方式,包括JSON和pickle模块的使用方法,对比了它们的功能和适用场景,并演示了如何使用shelve模块进行数据的持久化。

json,用于字符串 和 python数据类型间进行转换
pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load

import json
dic={'name':'alvin','age':23,'sex':'male'}
with open('json.txt','w') as f:
    # date1=json.dumps(dic)
    # f.write(date1)
    json.dump(dic,f)
import json
with open('json.txt', 'r') as f:
    # date2=f.read()
    # date=json.loads(date2)
    date=json.load(f)
print(date)

Pickle只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,不能成功地反序列化也没关系。

import pickle
def foo():
    print('ok')
date1=pickle.dumps(foo())
with open('pickle.txt','wb') as f:    #注意是w是写入str,wb是写入bytes
    f.write(date1)
import pickle
with open('pickle.txt', 'rb') as f:
    date2=f.read()
date=pickle.loads(date2)

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式
shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型

import shelve
f = shelve.open(r'shelve.txt')
f['stu1_info']={'name':'alex','age':'18'}
f['stu2_info']={'name':'alvin','age':'20'}
f['school_info']={'website':'oldboyedu.com','city':'beijing'}
f.close()
import shelve
f = shelve.open(r'shelve.txt')
print(f.get('stu1_info')['name'])
内容概要:本文介绍了基于粒子群优化算法(PSO)的无人机路径规划与轨基于粒子群优化算法的无人机路径规划与轨迹算法的实现(Matlab代码实现)迹算法的实现,重点利用Matlab进行代码仿真与算法验证。文章围绕无人机在复杂环境下的路径规划问题,采用粒子群优化算法寻找最优飞行路径,并兼顾轨迹平滑性与避障能力。通过构建适应度函数,结合环境障碍物信息与飞行目标,实现高效、安全的路径搜索。该方法具有收敛速度快、易于实现的优点,适用于静态与动态环境中的无人机自主导航。文中提供了完整的Matlab代码实现流程,便于读者复现与进一步优化。; 适合人群:具备一定Matlab编程基础,对智能优化算法和无人机路径规划感兴趣的高校学生、科研人员及工程技术人员,尤其适合从事自动化、人工智能、无人系统等相关领域的研究人员。; 使用场景及目标:① 掌握粒子群优化算法在路径规划中的具体应用方法;② 实现无人机在复杂环境下的轨迹优化与避障;③ 借助Matlab平台完成算法仿真与可视化,服务于科研项目、课程设计或实际工程开发。; 阅读建议:建议读者结合Matlab代码逐段理解算法实现细节,重点关注适应度函数设计、粒子更新机制与路径约束处理部分。可尝试修改环境参数或引入动态障碍物以扩展算法功能,提升实践与创新能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值