`
smartzxy
  • 浏览: 200328 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

简单比较Python的数据持久化操作(一)

阅读更多

      最近喜欢上了Python,喜欢它的简洁高效,喜欢它的“无所不能”。

 

      在动手我计划的项目之前,打算先储备些基础知识。之前已经对基本的语法熟悉了,现在该对数据操作做一些深入了。Python的数据持久化操作主要是六类:普通文件、DBM文件、Pickled对象存储、shelve对象存储、对象数据库存储、关系数据库存储。

 

      普通文件不解释了,DBM就是把字符串的键值对存储在文件里:

 

% python
>>> import anydbm                           
>>> file = anydbm.open('movie', 'c')        # make a DBM file called 'movie'
>>> file['Batman'] = 'Pow!'                 # store a string under key 'Batman'
>>> file.keys( )                                 # get the file's key directory
['Batman']
>>> file['Batman']                          # fetch value for key 'Batman'
'Pow!'

 Pickled就是把对象序列化到文件,可以存储复杂类型:

 

% python
>>> table = {'a': [1, 2, 3],
             'b': ['spam', 'eggs'],
             'c': {'name':'bob'}}
>>>
>>> import pickle
>>> mydb  = open('dbase', 'w')
>>> pickle.dump(table, mydb)

 下面是反序列化:

 

% python
>>> import pickle
>>> mydb  = open('dbase', 'r')
>>> table = pickle.load(mydb)
>>> table
{'b': ['spam', 'eggs'], 'a': [1, 2, 3], 'c': {'name': 'bob'}}

 shelve存储差不多就是DBM和Pickled方式的结合,以键值对的形式把对象序列化到文件:

 

% python
>>> import shelve
>>> dbase = shelve.open("mydbase")
>>> object1 = ['The', 'bright', ('side', 'of'), ['life']]
>>> object2 = {'name': 'Brian', 'age': 33, 'motto': object1}
>>> dbase['brian']  = object2
>>> dbase['knight'] = {'name': 'Knight', 'motto': 'Ni!'}
>>> dbase.close( )

 取数据:

 

% python
>>> import shelve
>>> dbase = shelve.open("mydbase")
>>> len(dbase)                             # entries
2

>>> dbase.keys( )                          # index
['knight', 'brian']

>>> dbase['knight']                        # fetch
{'motto': 'Ni!', 'name': 'Knight'}

     对象数据库的存储没怎么了解,因为不习惯用它存储数据。感觉应该和shelve差不多吧,只是把数据保存到了数据库里(其实还是一个文件嘛),然后增加了些事务之类的高级功能。


     Python中关系数据库的存储是重点,操作关系数据库最“简单”的就是直接用DB-API,就像Java里的JDBC;当然,数据结构复杂了、设计要求高了,就得找些ORM框架偷懒了,主要有独立的SQLAlchemy,Django的自带ORM等。这部分内容还是下一篇博客写吧,我不喜欢文章拉得长长的……

0
1
分享到:
评论

相关推荐

    python持久化操作

    ### Python 持久化操作——CSV、Excel篇 #### 1. Python中读写CSV文件 ##### 1.1 什么是CSV CSV (Comma-Sparated Values),即逗号分隔值,是一种通用的、相对简单的文件格式,被用户、商业和科学界广泛采用。CSV...

    Python数据持久化shelve模块用法分析

    shelve模块是Python的一个...希望通过以上的详细分析,能够帮助你更好地理解和掌握Python数据持久化shelve模块的用法。更多关于Python的知识和技巧,可以进一步参考相关的教程和专题文章,从而提升你的Python编程能力。

    Python3.7.2中文文档-标准库-Python数据持久性

    综上所述,“Python数据持久性”涉及到一系列技术,它们是Python开发中的重要工具,帮助开发者处理数据的存储和检索,确保程序的正常运行和数据的安全。理解并掌握这些概念和库对于任何Python开发者来说都是必要的。

    python序列化与数据持久化实例详解

    从上面的代码可以看出,使用shelve模块进行数据持久化操作非常简单,这使得它在需要持久化存储Python对象而又不需要复杂查询功能时非常有用。 除了shelve,Python标准库中还包括dbm模块,它提供了类似的功能,但...

    Python-所有ApolloClient20cache实现的简单持久化

    本文将深入探讨标题中的"Python-所有ApolloClient20cache实现的简单持久化",以及与之相关的标签"Python开发-数据缓存"。 Apollo是一个配置中心,它允许应用程序动态地获取和更新配置,而无需重启服务。在Python中...

    python3内置持久化模块shelve心得

    Python 提供了多种方式来实现数据的持久化,其中 `shelve` 模块是一个非常实用的选择,它允许我们像使用字典一样来存储复杂的数据结构,并将其保存到磁盘上以便后续使用。 #### shelve 模块详解 `shelve` 模块基于...

    Python拾趣013 数据持久化之HDF5数据操作

    本文将重点讨论HDF5这种高效的数据持久化方法,特别是针对Python的HDF5数据操作。 HDF5(Hierarchical Data Format 5)是一种开源文件格式,最初由美国国家超算中心研发,现由HDF Group维护。它的设计目标是处理...

    python文件和数据格式化.ppt

    文件是数据持久化的基础,它们可以存储文本、二进制数据或者其他各种类型的信息。本章主要介绍了Python中文件的基本操作和数据格式化的概念。 首先,文件分为两类:文本文件和二进制文件。文本文件通常使用统一的...

    python3内置持久化模块pickle心得

    通过`pickle`,我们可以将Python中的各种数据结构(如列表、字典、元组等)转换成一个字节流(bytes),这样就可以方便地在网络上传输或者存储到硬盘上,从而实现数据的持久化存储。 #### 二、pickle模块的基本功能...

    python实现简单的计时器功能函数

    在Python中实现一个简单的计时器功能,可以通过多种方式来完成,其中一种比较常用的方法就是使用time模块来获取时间,并结合函数的持久化变量来记录时间差。下面将详细介绍如何利用Python实现简单计时器功能的函数。...

    Python实现简易图书管理系统

    Python有内置的csv模块,可以方便地读取和写入这类文件,用于系统中图书数据的持久化存储。 接下来,"untitled.py"应该是项目的主程序文件。在这个文件中,开发者可能使用了Python的Tkinter库来创建GUI界面。...

    Python数据分析的学习代码.zip

    Python数据分析是一种强大的工具,用于处理、理解和解释大量数据。它在商业智能、社会科学、科学研究以及许多其他领域都有着广泛的应用。Python的数据分析库如Pandas、NumPy和Matplotlib等,为用户提供了高效、灵活...

    python简单的银行管理系统

    3. **数据库接口**:为了持久化存储用户数据,通常会使用数据库。Python的标准库`sqlite3`可以让我们方便地与SQLite数据库交互。需要掌握如何创建数据库、表,执行SQL查询(如INSERT、SELECT、UPDATE、DELETE),...

    Python操作MySQL数据.pdf

    `commit()`方法用来提交事务,确保数据被持久化。`rowcount`属性则可以告诉我们受影响的行数,即插入了多少条记录。 在完成所有数据库操作后,记得关闭连接以释放资源: ```python mydb.close() ``` 这只是一个...

    数据获取(Python爬虫)数据持久化(MySQL)Flask搭建Web后台数据可视化(H5+Echarts).zip

    它的界面简洁明了,操作简单易懂,即使是不熟悉电脑操作的人也可以轻松上手。同时,它还支持自定义快捷键和界面主题,可以让我们根据自己的习惯和喜好进行个性化设置。 此外,这款程序还具有出色的稳定性和安全性。...

    用Python玩转数据_python教程_爬虫_数据处理_

    Scrapy则是一个完整的爬虫框架,支持多线程、中间件处理和数据持久化,适用于大规模的Web抓取任务。 数据清洗是数据分析的关键步骤,Python的Pandas库提供了大量的函数,如dropna()用于去除缺失值,fillna()用于...

    毕设&课设&项目&实训-提供了从爬虫获取数据到数据持久化、数据可视化分析以及构建简单的代理池等一整套解决方案模板。.zip

    基于webmagic + springboot + mybatis的Java爬虫,使用Echarts进行数据可视化分析,提供了从爬虫获取数据到数据持久化、数据可视化分析以及构建简单的代理池等一整套解决方案模板。 【项目资源】: 包含前端、后端、...

    Python-redisco一个Python库提供可以持续存在在Redis中的简单模型和容器

    `Python-redisco` 是一个针对Redis数据库的Python库,它为开发者提供了方便的数据模型和容器,使得在Redis中存储和操作数据变得更加简单和直观。Redis作为一个高性能的键值存储系统,常被用作数据库、缓存和消息...

    基于Python的数据挖掘技术在创业担保贷款中的应用.pdf

    数据存储的目标是将采集到的数据持久化,以便后续的分析和处理。这通常涉及到数据库的设计与使用,以及可能的数据转换工作。在数据预处理阶段,作者提到了数据清洗、规范化和特征降维等技术手段。数据清洗是指检查、...

Global site tag (gtag.js) - Google Analytics