一日一技:在 Python 中像字典一样持久化数据

简介: 一日一技:在 Python 中像字典一样持久化数据

摄影:产品经理买单:kingname

我们知道,如果我们在 Python 中想把一段数据持久化到硬盘上,最简单的办法就是写文件:

with open('data.txt', 'w', encoding='utf-8') as f:
    f.write('username:1234567\n')
    f.write('password: 9876543\n')

但这样做有一个弊端,就是在读取数据的时候,我们把整个数据读入内存以后,还需要单独写一段代码,用来区分哪里是username对应的值,哪些是password对应的值。

实际上,在 Python 中,我们可以使用shelve模块,像读写字典一样持久化存储数据。例如,在 write.py文件中,我们写如下代码:

import shelve
with shelve.open('data') as db:
    db['username'] = 12345678
    db['password'] = 98765432

运行完成以后,会在write.py所在的文件夹下面生成一个data.db文件,如下图所示:

现在,我们再写一个read.py,其内容如下:

import shelve
with shelve.open('data') as db:
    username = db['username']
    password = db['password']
print(f'账号为:{username}')
print(f'密码为:{password}')

不需要我们单独做额外的解析,就能像读取字典一样读取持久化到硬盘中的数据。

并且,原来写文本文件的时候,如果我们的数据是字典或者列表,直接写入还会报错,必需先转成 JSON 字符串才能写入。

shelve模块没有这个限制,所有能被 pickle的对象,都可以存入,例如:

import shelve
with shelve.open('data') as db:
    db['complex_data'] = [{'a': 1, 'b': [1, 2, 3]}, 2, 'a']

需要注意的是,shelve模块底层基于pickle模块,所以当别人传给你一个 shelve生成的文件时,不能贸然打开,否则可能会执行危险的代码。

另外,shelve模块只支持多线程同时读取。不支持多线程写入,也不支持同时读写。

关于shelve的更多参数,可以参阅它的官方文档[1].

目录
相关文章
|
1月前
|
机器学习/深度学习 新能源 调度
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
171 1
|
1月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
24天前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
27天前
|
存储 JSON 算法
Python集合:高效处理无序唯一数据的利器
Python集合是一种高效的数据结构,具备自动去重、快速成员检测和无序性等特点,适用于数据去重、集合运算和性能优化等场景。本文通过实例详解其用法与技巧。
81 0
|
2月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
2月前
|
JSON API 数据格式
Python采集京东商品评论API接口示例,json数据返回
下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析
|
9天前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
11天前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
1月前
|
JSON 安全 API
Python处理JSON数据的最佳实践:从基础到进阶的实用指南
JSON作为数据交换通用格式,广泛应用于Web开发与API交互。本文详解Python处理JSON的10个关键实践,涵盖序列化、复杂结构处理、性能优化与安全编程,助开发者高效应对各类JSON数据挑战。
132 1
|
20天前
|
数据可视化 大数据 数据挖掘
基于python大数据的招聘数据可视化分析系统
本系统基于Python开发,整合多渠道招聘数据,利用数据分析与可视化技术,助力企业高效决策。核心功能包括数据采集、智能分析、可视化展示及权限管理,提升招聘效率与人才管理水平,推动人力资源管理数字化转型。

推荐镜像

更多