在CSV文件中逐行(依次)打印Python词典项目

时间:2019-06-24 10:18:38

标签: python csv dictionary

我有一个字典字典,其中包含4个键:值对。我想在CSV文件中逐行打印其中两个项目(Source_columns和Target_columns)。 字典sdict:

{'Target_Table': 'scott  .  employees',
 'Target_Columns': 'empp_id  last_name  first_name  email  phone_number  JOB_DATE  job_id  salary  commission_pct  manager_id  department_id',
 'Source_Columns': 'emp_id    last_name    first_name    email    phone_number    JOB_DATE    job_id    salary    commission_pct    manager_id    department_id',
 'Source_Table': 'scott  .  employee',
 'where_expr': 'emp_id  =  old_emp_id'}

我尝试了简单的方法,例如使用split()方法,但是所有这些方法都可以将值拆分为普通输出中的不同行,而CSV中不会发生这种情况。 如果我添加.replace(“”,“ \ n”),则删除空格后的所有内容。 下面是我的工作代码。我要在其中添加什么以便可以在CSV文件中获得类似以下的输出:(我只写下了第二列的内容。。)

Source Table     Target Columns

emp_tab          empp_id
                 last_name 
                 first_name
                 email 
                 phone_number 
                 JOB_DATE  ...

我现在得到的是这样的:

Target_Columns
empp_id  last_name  first_name  email  phone_number  JOB_DATE  job_id  salary  commission_pct  manager_id  department_id
with open("proc.txt", 'r') as file:   
    if re.search(r'select|SELECT', file.read()):
        selr = select_stmt.parseString(open('proc.txt').read());
        sd=selr.asDict()
        sdict={k: str(v).strip("[]").replace("'", "").replace(","," ").replace("["," ").replace("]"," ") for k, v in sd.items()}

with open('procfile11.csv', 'w') as f: 
    fieldnames = ["Source_Table","Source_Columns","Target_Table","Target_Columns"]
    fieldnames = sorted(set(sd.keys()).union(*[sdict]))
    writer = csv.DictWriter(f, fieldnames, extrasaction='ignore') 
    writer.writeheader()
    writer.writerow(sdict)

0 个答案:

没有答案