【发布时间】:2019-11-04 06:29:39
【问题描述】:
我有一本字典如下:
> {'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'}
我必须在不同的行中分别打印 Target_Columns 值。到目前为止,它们都在一行中打印。 我知道如何拆分单词,但我无法执行它,尤其是在 Target_Columns 键的值上。
> 'Target_Columns': 'empp_id last_name first_name email phone_number JOB_DATE job_id salary commission_pct manager_id department_id'
预期输出:
> Target Columns
> empp_id
last_name
first_name
email
phone_number
JOB_DATE ...
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()}
val=sdict.values()
for key in sdict:
if key=='Target_Columns':
for value in re.findall(r'\S+', val):
print(value)
然后对于 CSV,我有这个:我不知道如何整合两者
with open('procfile.csv', 'w') as f:
fieldnames = ["Source_Table","Source_Columns","Target_Table","Target_Columns"]
fieldnames = sorted(set(sd.keys()).union(*[sdict,idict]))
writer = csv.DictWriter(f, fieldnames, extrasaction='ignore')
writer.writeheader()
writer.writerow(sdict)
【问题讨论】:
标签: python csv dictionary