Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何迭代地创建多个表,每个表都以列表元素命名,还可以基于列表进行迭代查询_Python_Python 2.7_Pyodbc - Fatal编程技术网

Python 如何迭代地创建多个表,每个表都以列表元素命名,还可以基于列表进行迭代查询

Python 如何迭代地创建多个表,每个表都以列表元素命名,还可以基于列表进行迭代查询,python,python-2.7,pyodbc,Python,Python 2.7,Pyodbc,我想使用for循环以迭代方式创建约1900个表,每个表都以列表元素命名 每个新创建的表将只包含满足简单SQL查询“WHERE Cable_Op=[上面提到的相同列表元素]”的行 本质上,我希望列表中的每个元素都有一个表,该表只包含Cable_Op=相同元素的行 我有一个1900个元素的列表,每个元素都是一个文本字符串 现在,我正在努力 cursor = conn.cursor() with open("C:/Python27/COALS_CARS/PROVIDERS.txt") as f: p

我想使用for循环以迭代方式创建约1900个表,每个表都以列表元素命名

每个新创建的表将只包含满足简单SQL查询“WHERE Cable_Op=[上面提到的相同列表元素]”的行

本质上,我希望列表中的每个元素都有一个表,该表只包含Cable_Op=相同元素的行

我有一个1900个元素的列表,每个元素都是一个文本字符串

现在,我正在努力

cursor = conn.cursor()

with open("C:/Python27/COALS_CARS/PROVIDERS.txt") as f:
providerlist = f.read().splitlines()

for provider in providerlist:
    cursor.execute('SELECT UID, COUNTY, STATE, Cable_Op into [provider] from COALS where Cable_Op =provider')
无济于事。在数小时的搜索中,我既没有提到基于列表迭代命名/创建新表,也没有看到基于列表迭代查询

基本上,我想要一个名为“AT&T”的表,其中只有Cable_Op=“AT&T”的值,一个名为“Comcast”的表,其中只有Cable_Op=“Comcast”的值,以此类推(其中AT&T和Comcast是列表元素)

pyodbc允许这样做吗

提前感谢。

先问几个问题:

  • 这是一次性手术吗?还是每隔一段时间就会运行一次 桌子重新装好了吗
  • 不必怀疑其目的,使用循环来 在每个提供程序的基表顶部创建一个视图,然后 数据将是最新的
  • 您正在使用什么RDBMS
如果要创建表(如果您具有正确的权限)

有两种方法可以做到这一点:

  • 使用:(SQL语法)
  • 
         CREATE TABLE <table name> (<field definitions>)
         -- OR --
         TRUNCATE TABLE <table name> -- If the table already exist clear out the data
    
         -- Then, load in the data...
    
         INSERT INTO <table name> (<field list>) SELECT <field list> FROM COALS WHERE Cable_Op = <table name>
    
    
         SELECT <field list> INTO <table name> FROM COALS WHERE cable_op = <table name>
         -- will fail if the table already exists
    
    
        import pyodbc
    
    
        def main():
            serverName = 'DETAIL'
            databaseName = 'FS001'
            conn = pyodbc.connect('DRIVER={SQL Server};Server=%s;Database=%s;Integrated Security=true;' % (serverName, databaseName))
            cursor = conn.cursor()
    
            with open("C:\Data\PROVIDERS.txt") as f:
                providerlist = f.read().splitlines()
    
            for provider in providerlist:
                cursor.execute("SELECT UID, COUNTY, STATE, Cable_Op into [%s] from COALS where Cable_Op = '%s'" % (provider, provider))
    
            cursor.execute('select * from %s' % 'INFORMATION_SCHEMA.TABLES')
            rows = cursor.fetchall()
            for row in rows:
                print row
    
        if __name__ == '__main__':
            main()