在CSV-fi中逐行(按顺序)打印Python字典项

2024-05-17 04:03:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本4字的词典键:值对。我想在一个CSV文件中逐行打印它的两个项目(源列和目标列)。 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'}

我不能像CSV()那样用普通的方法分割所有的输出值。 如果我添加.replace(“,”\n“),则空间之后的所有内容都将被删除。 下面是我的工作代码。我要在其中添加什么以便在CSV文件中获得类似这样的输出:(我刚刚写下2列的内容…)

^{pr2}$

我现在得到的是这样的:

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)

Tags: columnscsvnameidnumbersourcetargetemail