创建字典的有序字典(或列表)以用作SQL表

时间:2014-08-24 18:01:23

标签: python sql list dictionary

我需要在python中创建类似于表的结构而不实际使用sqlite。所以,为了做这样的事情,我遇到了使用字典字典的可能性。

这给出了如下结构:

{'7865':{'Name':'john','age':'24','Index':'7865'},'Index':{'Name':[],'age':[],'Index'='ID'}}

此值永远不会按顺序排列,并且列名将始终根据用户输入而更改。(不能对键值对进行硬编码以匹配)

现在使用2个功能,一个用于用户输入,另一个用于设置字典列表

设置用户输入:

def CreateSchemaOnly():
    my_dict1=defaultdict(list)
    name=input("enter the DB name")
    count=int(input("enter the column count"))
    columnName=list()
    for x in range(count):
        a=input("enter column name")
        columnName.append(a)
        my_dict1[columnName[x]]=[]
    index=input("Enter the Index")
    my_dict1['Index']=index
    Schema.Schemas().addRow(my_dict1,name)

设置架构

class Schemas(object):
    '''
    classdocs
    '''
    def __init__(self):
        '''
        Constructor
        '''
        self.rows =  []# list of row objects, we assume if order of id
        self.nameMap = {}# for faster direct lookup for row by name


    def addRow(self, row,dbname):
        self.rows.append(row)
        self.nameMap['Index'] = row
        output=open(dbname+'.pkl','wb')# to store schema in file and load when reqiured
        pickle.dump(self.nameMap,output)
        output.close()
        print("Database Schema Created Successfully")

我需要执行各种DBMS操作,例如添加新记录,更新记录......

感谢帖子提供初步帮助:Python: Data Structure for Maintaing Tabular Data in Memory?

1 个答案:

答案 0 :(得分:2)

我建议使用shelf来实现此目标。

“架子”是一个持久的,类似字典的对象。与“dbm”数据库的区别在于,架子中的值(而不是键!)可以是基本上任意的Python对象 - pickle模块可以处理的任何东西。这包括大多数类实例,递归数据类型和包含许多共享子对象的对象。键是普通的字符串。

但是在我们称之为“{3}}

之前,您要做的任何事情都已完成