Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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_Sql_Regex_File - Fatal编程技术网

在python中转换文件

在python中转换文件,python,sql,regex,file,Python,Sql,Regex,File,我正在使用AmazonRedshift分析现有的压缩。不幸的是,它不能持久化数据库中的数据。我必须把细节保存在一个文件里。我已经从数据库/系统视图中获得了有关列名称和数据类型的信息 我需要合并这些信息,以便使用它们创建具有压缩的新表 我使用python脚本从元数据创建表。我需要这些额外的信息来添加到createtable语法中 我的输出文本文件格式如下 schema_name.table_name table_name column_name compression_type 例如

我正在使用AmazonRedshift分析现有的压缩。不幸的是,它不能持久化数据库中的数据。我必须把细节保存在一个文件里。我已经从数据库/系统视图中获得了有关列名称和数据类型的信息

我需要合并这些信息,以便使用它们创建具有压缩的新表

我使用python脚本从元数据创建表。我需要这些额外的信息来添加到createtable语法中

我的输出文本文件格式如下

  schema_name.table_name

table_name   column_name compression_type
例如

abc_schema.tab1
tab1   col1 raw
tab1   col2 lzo
tab1   col3 bytedict
tab1   col4 delta32k
tab1   col5 raw
abc_schema.tab2
tab2   col1 raw
tab2   col2 lzo
tab2   col3 bytedict
tab2   col4 delta32k
tab2   col5 raw
我想将它们插入数据库表中

插入选项卡详细信息值(架构名称、表名称、列名称、压缩类型)

我的挑战是如何读取标题,即schema_name.table_name并与细节合并

任何提示都将不胜感激

谢谢

更新:

我试着使用python,但出现了一个错误

import csv
with open ('2','r') as infile:
   reader = csv.reader(infile)
   header = next(reader)
   mydict = dict(row[:2] for row in reader if row)

Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
ValueError: dictionary update sequence element #26 has length 1; 2 is required
导入csv
以open('2','r')作为填充:
reader=csv.reader(infle)
页眉=下一个(读卡器)
mydict=dict(行[:2]用于读卡器中的行,如果为行)
回溯(最近一次呼叫最后一次):
文件“”,第4行,在
ValueError:字典更新序列元素#26的长度为1;2是必需的

insert命令将在循环中执行。因此,当您拥有模式名称,然后是表、行、类型时,就可以创建一个启动集。在获得下一个模式之前,每个连续的匹配都是针对表、行和类型的?这是您示例中的实际文件格式吗?如果Python支持的话,我想应该使用
\G
最后一个匹配结构。它是实际的文件。请给我一个代码示例。看起来最新的Python支持
\G
。我不懂Python,所以我只能给你一个正则表达式来逐行捕获数据。够了吗?谢谢你的提示。让我来整理一下