【问题标题】:Printing a particular key's value of a python dictionary into a CSV file将 python 字典的特定键值打印到 CSV 文件中
【发布时间】: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


    【解决方案1】:

    下面

    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',
             }
    
    print('\n'.join(sdict['Target_Columns'].split('  ')))
    

    【讨论】:

      【解决方案2】:

      假设sdict 是您在问题开头提到的字典:

      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',
              }
      
      for key, val in sdict.items():
          if key == 'Target_Columns':
              print(key)
              print("\n".join(val.split()))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多