第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python:迭代字符串列表并將它們與類對(duì)象關(guān)聯(lián)

Python:迭代字符串列表并將它們與類對(duì)象關(guān)聯(lián)

海綿寶寶撒 2023-06-27 18:25:12
我創(chuàng)建了一個(gè)名為 Tables 的類,它具有name、ddl和cols屬性,我用它們?cè)?MySQL 中創(chuàng)建表。我有一個(gè)名為 的所有 Table 對(duì)象的列表mylist。我有一個(gè)名為 的所有表對(duì)象名稱的列表tables。我有一個(gè) csv 的剝離文件名列表,我將使用它來(lái)將數(shù)據(jù)加載到名為 的表中l(wèi)ist_files。如果in 中的項(xiàng)目與list_filesTable 對(duì)象的 in 匹配,我想將 Table 對(duì)象中列出的列中的數(shù)據(jù)插入到關(guān)聯(lián)的 MySQL 表中 - 換句話說(shuō),我想使用列表項(xiàng)作為具有匹配名稱的 Table 對(duì)象。namemylistcols一旦弄清楚如何使用字符串list_files作為現(xiàn)有 Table 對(duì)象的名稱,我就可以構(gòu)建 INSERT 語(yǔ)句。到目前為止,這是我的代碼:from pathlib import Pathmylist = []class Table:    table_list = mylist    def __init__(self, name, ddl):        self.name = name        self.ddl = ddl        self.cols = []        self.skip_id = False  # indicates whether to skip the AUTO_INCREMENT '_id'        # column on import/update    def add_to_list(self, table_list):        table_list.append(self)    def add_cols(self):        text = self.ddl.split('`')        self.cols = text[3::2]    def skip_auto_inc_id(self):        if 'AUTO_INCREMENT' in self.ddl:            self.skip_id = True# 2 example Table objectssub_leagues = Table('sub_leagues', '''CREATE TABLE IF NOT EXISTS `sub_leagues` (  `subl_id` INT PRIMARY KEY,  `league_id` INT,  `sub_league_id` INT,  `name` VARCHAR(50),  )   ENGINE=InnoDB DEFAULT CHARSET=latin1''')sub_leagues.add_to_list(mylist)divisions = Table('divisions', '''CREATE TABLE IF NOT EXISTS `divisions` (  `d_id` INT AUTO_INCREMENT PRIMARY KEY,  `league_id` INT,  `sub_league_id` INT,  `division_id` INT,  `name` VARCHAR(50),  `gender` INT  )   ENGINE=InnoDB DEFAULT CHARSET=latin1''')divisions.add_to_list(mylist)tables = []for table in mylist:    table.add_cols()    table.skip_auto_inc_id()    if table.skip_id:        table.cols = table.cols[1:]    tables.append(table.name)files = ['sub_leagues.csv', 'divisions.csv']list_files = []for file in files:    filename = Path(file).stem    list_files.append(filename)#  This is where I'm stumpedfor filename in list_files:    if filename in tables:        print(filename.cols)這顯然不起作用,但我想將其視為filename具有相同名稱的 Table 對(duì)象,并且不確定正確的方法。
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以創(chuàng)建一個(gè)字典將文件名映射到 Table 對(duì)象:


tables = {}

for table in mylist:

    table.add_cols()

    table.skip_auto_inc_id()

    if table.skip_id:

        table.cols = table.cols[1:]

    tables[table.name] = table


for filename in list_files:

    if filename in tables:

        table = tables[filename]


查看完整回答
反對(duì) 回復(fù) 2023-06-27
  • 1 回答
  • 0 關(guān)注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)