dbm.error: need 'c' or 'n' flag to open new db

#coding=utf-8
import shelve
with shelve.open("shelve.ini","w") as f:
    f["k1"] = test_list
    f["k2"] = test_dict
    f["k3"] = s

with shelve.open("shelve.ini","r") as f:
    print(f["k3"])
    print(f["k2"])
    print(f["k1"])

报错

    raise error[0]("need ‘c‘ or ‘n‘ flag to open new db")
dbm.error: need ‘c‘ or ‘n‘ flag to open new db

改为如下,加入c参数:

#coding=utf-8
import shelve
test_list=[1,2,3,4,5]
test_dict={"aaa":23,"bbb":33}
s="xiaoming"
with shelve.open("shelve.ini","wc") as f:
    f["k1"] = test_list
    f["k2"] = test_dict
    f["k3"] = s

with shelve.open("shelve.ini","rc") as k:
    print(k["k3"])
    print(k["k2"])
    print(k["k1"])

输出

xiaoming
{‘aaa‘: 23, ‘bbb‘: 33}
[1, 2, 3, 4, 5]

dbm.error: need 'c' or 'n' flag to open new db

原文地址:https://www.cnblogs.com/sea-stream/p/10393264.html

时间: 2024-10-20 13:25:40

dbm.error: need 'c' or 'n' flag to open new db的相关文章

iOS ERROR: unable to get the receiver data from the DB 解决方案

这个错误通常发生在iOS7当中,可能是缓存的导致的问题. 解决步骤: 右击Finder,选择 Go to Folder 复制上:"~/Library/Application Support/iPhone Simulator/" 这回打开iPhone Simulator的文件夹,然后删除其中的7.x 文件夹 翻译编辑自:http://stackoverflow.com/a/22784390/3458781 iOS ERROR: unable to get the receiver dat

iOS ERROR: unable to get the receiver data from the DB 解决方式

这个错误通常发生在iOS7其中,可能是缓存的导致的问题. 解决步骤: 右击Finder,选择 Go to Folder 复制上:"~/Library/Application Support/iPhone Simulator/" 这回打开iPhone Simulator的目录.然后删除当中的7.x 目录 翻译编辑自:http://stackoverflow.com/a/22784390/3458781

python之shelve模块详解2(转)

阅读目录 一.定义 二.用途 三.用法 四.关联模块Anydbm 五.方法 六.writeback参数 回到顶部 一.定义 Shelve是对象持久化保存方法,将对象保存到文件里面,缺省(即默认)的数据存储文件是二进制的. 回到顶部 二.用途 可以作为一个简单的数据存储方案. 回到顶部 三.用法 使用时,只需要使用open函数获取一个shelf对象,然后对数据进行增删改查操作,在完成工作.并且将内存存储到磁盘中,最后调用close函数变回将数据写入文件. 回到顶部 四.关联模块Anydbm 相同点

手机信号强度单位dB、dBm和asu

dB.dBm都是功率增益的单位,不同之处如下: dB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log(甲功率/乙功率),如果采用两者的电压比计算,要用20log(甲电压/乙电压).[例] 甲功率比乙功率大一倍,那么10lg(甲功率/乙功率)=10lg2=3dB.也就是说,甲的功率比乙的功率大3 dB.反之,如果甲的功率是乙的功率的一半,则甲的功率比乙的功率小3 dB. dBm是一个表示功率绝对值的值

RMAN-04006: error from auxiliary database

Oracle11g RAC + DG 搭建过程中,在备库进行 duplicate时报错如下: [[email protected]:/u01/app/oracle/11.2/db_1/dbs]$rman target sys/[email protected]  auxiliary sys/[email protected] nocatalog Recovery Manager: Release 11.2.0.4.0 - Production on Fri Abc 21 17:33:01 xxx

64位平台32位MSSQL通过DBLink访问Oracle,Error 7399

系统平台: 64位 MSSQL 2005 32 位 当安装32位的Oracle Client后,在SQL里创建DBLink时报错: The OLE DB provider "MSDAORA" for linked server "SZMESP" reported an error. The provider did not give any information about the error.Cannot initialize the data source o

无线功率 mW 和 dBm 的换算

无线电发射机输出的射频信号,通过馈线(电缆)输送到天线,由天线以电磁波形式辐射出去.电磁波到达接收地点后,由天线接收下来(仅仅接收很小很小一部分功率),并通过馈线送到无线电接收机.因此在无线网络的工程中,计算发射装置的发射功率与天线的辐射能力非常重要. Tx 是发射(Transmits)的简称.无线电波的发射功率是指在给定频段范围内的能量,通常有两种衡量或测量标准:1.功率(W):相对 1 瓦(Watts)的线性水准.例如,WiFi 无线网卡的发射功率通常为 0.036W ,或者说 36mW.2

[转]MySQL: Starting MySQL….. ERROR! The server quit without updating PID file

转自: http://icesquare.com/wordpress/mysql-starting-mysql-error-the-server-quit-without-updating-pid-file/ 他也是更新系统后出现的这个问题,我是更新之后出现的该问题,所以按照他的思路删掉配置文件就可以启动了,至于为什么会出现这种问题,回头有时间再仔细研究下. This step-by-step guide is mainly for FreeBSD, however the idea is th

MySQL: Starting MySQL….. ERROR! The server quit without updating PID file

文章来源:http://icesquare.com/wordpress/mysql-starting-mysql-error-the-server-quit-without-updating-pid-file/ 今天启动MySQL 遇见了这个问题,网上搜索,结果各种改文件,删除文件纯属坑爹:在上边的网站上发现了问题的解决方案~老外总结的真不错!拿过来自己学习一下 This step-by-step guide is mainly for FreeBSD, however the idea is