sqldict—您有一个无限容量的dict,它提供透明的对象序列化,现在由您决定。

sqldict的Python项目详细描述


欢迎使用,请阅读此简要文档。


下面的所有sqldict示例都将使用sqlalchemy引擎e。
某些数据库引擎将需要某些后端模块
,在大多数情况下,这些模块在*nix
发行版或.exe中作为包提供安装程序,请参阅下面的"安装"。

让我们创建引擎对象:

>;>;来自sqlalchemy import*
>;>;dburi='mysql://user:pass@localhost/sqldict'
>;>;e=创建引擎(dburi)

d dict d1和d2:

>;>d1=sqldict(e,"t1",create=1)
>;>d2=sqldict(e,"t2",create=1,keytype=string(50),valtype=integer)


sqldict()支持所有或最常见的dict操作,具体取决于选择的sqldict扩展名。
这是一些有用的sqldict实例化参数的选择:

echo-将所有执行的sql查询打印到stdout(bool)
create-创建数据库表(bool)
sort-0=不排序,1=键,2=值
serialize-transp对于分配给字符串类型列(bool)的非字符串类型值,不进行pickling
get row-获取整行而不只是val(bool)
keycol-键列的名称
valcol-val列的名称
key type-键的sqlalchemy列类型
val type-val的sqlalchemy列类型

例如:

更新..,插入..



>;>contents={"asd":123}
>;>d1.更新(contents)
>;>d2.更新(contents)
>;>assert d1["asd"]="123"
>;>assert d2["asd"]==123
>;>>;d2.drop()

>;>assert e.execute("创建表asd(i integer,s varchar(50))"
>;>assert e.execute("插入asd值(42,'gubbe')"
>;>assert e.execute("插入asd值(99,'hatt')"
>;>d3=sqldict(e,"as"d",keyccol="s",valcol="i")
>>gt;d4=sqldict(e,"asd",keyccol="i",valcol="s")
>>gt;
>>gt;d5=sqldict(e,"asd",keyccol="s",valgetter=lambda r:r)
>>gt;d3["gubbe"]==42
>>gt;d4[42]="gubbe"断言d4[42]=="gubbe"
>>gt>gt;e.e.e.e.e.e.e"asd",keyccol="s",valcol="s",valgetter=lambda r:r)
&前ecute("drop table asd")
>;>r/>>;>;d=sqldict(e,"laarge",create=1,serialize=1,keytype=integer)
>;>;d[42]="galning"


安装说明


我使用debian,因此我执行以下操作:
$sudo apt get install python setuptools python mysqldb
$easy_installsqlalchemy
$easy_安装sqldict

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无JPA的纯Hibernate ORM java SpringBoot配置   安卓会生成一组唯一的java数字   java我的自定义阵列列表每次启动时都会崩溃我不确定为什么会一直崩溃   Java继承;将子类传递给超类的抽象方法   java从没有if语句的数组中获取instanceof type   java中使用对象的温度转换   存储库接口的JavaSpringDataMongoDBeanXML配置   java JAXWS为iBM websphere、iBM web服务客户端添加寻址   数组试图返回Java中两个对象的面积之和   apache Spark java:columnNameOfCorruptRecord和badRecordsPath在加载csv时不工作   java无法创建。txt文件   java Hibernate与MySQL插入查询不一致   不考虑java Hazelcast分布式地图的最大大小   bash Java如何在父进程中设置环境变量