简体   繁体   English

如何将sql插入语句转换为1个liner并在python中一一运行?

[英]How to convert sql insert statement into 1 liner and run one by one in python?

Hi I am new in python so asking this question.嗨,我是 python 的新人,所以问这个问题。 I have insert query in file.我在文件中插入查询。 I have to execute them one by one.我必须一一执行。 Could you please help me how can I do this?你能帮我吗我该怎么做? They are saved in text file.它们保存在文本文件中。 They aren't in 1 liner.它们不在 1 个班轮中。 How can we make them in 1 liner or convert them into dataframe?我们如何将它们制作成 1 个衬垫或将它们转换成 dataframe?

Example: insert_statement.txt示例:insert_statement.txt

INSERT INTO imedical_cleansing_rule_metadata
(
  Data_Set_Name,
  Region,
  Layer,
  Table_Name,
  Column_Name,
  Column_Seq,
  EC2_Source_Path,
  EC2_Target_Path,
  Is_Active,
  s3_tgt_path,
  Rule,
  Spectrum_Table_Name,
  Sub_Rule
)
VALUES
(
  'JGVCC',
  'ASPAC',
  'Raw_Layer',
  'DM_GENESYS_CONVERSTION_AGG',
  'queue_name',
  2,
  '/medaff/Scripts/Incoming_Src_Files/',
  '/medaff/eureka/RawLayer/JGVCC/ASPAC/Genesys/DM_GENESYS_CONVERSTION_AGG/',
  'N',
  's3://itx-{}-jg-aspac/jgvcc/Raw_Layer/DM_GENESYS_CONVERSTION_AGG/',
  'rule1;rule3;rule4;rule2;rule6;rule19',
  'lnd_jgvcc_aspac_genesys_call_detail',
  NULL
);


INSERT INTO imedical_cleansing_rule_metadata
(
  Data_Set_Name,
  Region,
  Layer,
  Table_Name,
  Column_Name,
  Column_Seq,
  EC2_Source_Path,
  EC2_Target_Path,
  Is_Active,
  s3_tgt_path,
  Rule,
  Spectrum_Table_Name,
  Sub_Rule
)
VALUES
(
  'JGVCC',
  'ASPAC',
  'Raw_Layer',
  'DM_EUAVCC_CASE_CRM',
  'parent_case_number',
  1,
  '/medaff/Scripts/Incoming_Src_Files/',
  '/medaff/eureka/RawLayer/JGVCC/ASPAC/CRM/DM_EUAVCC_CASE_CRM/',
  'N',
  's3://itx-{}-jg-aspac/jgvcc/Raw_Layer/DM_EUAVCC_CASE_CRM/',
  'rule1;rule3;rule4;rule2;rule6;rule19',
  'lnd_jgvcc_aspac_crm_activity',
  NULL
);

If all queries are separated by one blank line, you could read and store them in a list:如果所有查询都由一个空行分隔,您可以读取它们并将它们存储在一个列表中:

with open("insert_statement.txt", "r") as file:
    query_list = file.read().split("\n\n\n")
    query_list = [query.replace('\n', ' ') for query in query_list]

for query in query_list:
    print(query)
    #  execute(query)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM