def convert_nb(logger, source_info: "SourceInfo", con: SimpleSQLite, result_logger: ResultLogger, nb) -> Set[str]: changed_table_name_set = set() # type: Set[str] changed_table_name_set |= CellConverter(logger, source_info, con, result_logger, nb.cells).convert() changed_table_name_set |= MetaDataConverter(logger, source_info, con, result_logger, nb.metadata).convert() table_name = KEY_VALUE_TABLE need_create_table = not con.has_table(table_name) kv_records = [[source_info.source_id, key, nb.get(key)] for key in ("nbformat", "nbformat_minor")] if len(kv_records) > 0: con.create_table( table_name, [NbAttrDesc.SOURECE_ID, NbAttrDesc.KEY, NbAttrDesc.VALUE]) con.insert_many(table_name, kv_records) result_logger.logging_success( "{}: {}".format(source_info.base_name, table_name), table_name, need_create_table) changed_table_name_set.add(table_name) con.commit() return changed_table_name_set
class SimpleSqliteCilent(object): def __init__(self): self.con = SimpleSQLite("pandas_df.sqlite") def createTableWithDf(self, dataframe, tableName): self.con.create_table_from_dataframe(dataframe, tableName) def dropTable(self, tableName): self.con.drop_table(tableName) def createTableWithList(self, tableName, columns): self.con.create_table(tableName, columns) def insertOneRow(self, tableName, columns): self.con.insert(tableName, columns) """ 返回的是tuple形式的结果 """ def query(self, tableName, whereDict, operation="=", extra=None): print len(whereDict.keys()) print "---------------" if len(whereDict.keys()) != 1: raise NotSupportParamError() return self.con.select(select="*", table_name=tableName,\ where=SqlQuery.make_where(key=whereDict.keys()[0], value=whereDict[whereDict.keys()[0]],operation=operation),extra=extra).fetchall() """ 根据where条件更新,目前仅支持1个条件 """ def update(self, tableName, set_queryDict, whereDict): print len(whereDict.keys()) print "---------------" if len(whereDict.keys()) != 1: raise NotSupportParamError() set_queryStr = "" for setKey, setValue in set_queryDict.items(): set_queryStr.join(setKey).join("=").join(setValue) return self.con.update(tableName,set_query ="", \ where=SqlQuery.make_where(key=whereDict.keys()[0], \ value=whereDict[whereDict.keys()[0]])).fetchall() """ 插入字典值形式的记录 """ def insertMany(self, tableName, inert_dictList): self.con.insert_many(tableName, inert_dictList) ##pass def __del__(self): if self.con is not None: self.con.close()