我有一个字典字典,其中包含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)